首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash格式字符串。用值替换占位符。

问Bash格式字符串。用值替换占位符。
EN

Stack Overflow用户
提问于 2018-10-18 17:09:52
回答 3查看 7.8K关注 0票数 4

我想使用linux格式化字符串:

代码语言:javascript
复制
"<username>{0}</username><password>{1}</password>".format("user", "pass")

输出:

代码语言:javascript
复制
<username>user</username><password>pass</password>

正确的命令是什么?我可以使用任何其他通配符来代替{0}和{1}。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-18 17:17:25

来自printf --help

-v VAR 将输出分配给shell变量VAR,而不是在标准输出中显示它。

所以,你需要做的是:

代码语言:javascript
复制
FMT='<username>%s</username><password>%s</password>'
printf -v VAR "$FMT" user pass
票数 9
EN

Stack Overflow用户

发布于 2018-10-18 17:29:42

试试这种参数展开

代码语言:javascript
复制
TMPL="<username>\$U</username><password>\$P</password>"
REALNAME="Bobby"
REALPASS="Lamepass"

TMPL=${TMPL/\$U/${REALNAME}}
TMPL=${TMPL/\$P/${REALPASS}}
echo $TMPL
票数 7
EN

Stack Overflow用户

发布于 2018-10-18 18:22:37

您使用的语法似乎是python。撇开安全性方面不说,您可以直接调用python:

代码语言:javascript
复制
var='"<username>{0}</username><password>{1}</password>".format("user", "pass")'
python3 -c "print($var)"

版画

代码语言:javascript
复制
<username>user</username><password>pass</password>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52879234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档