我想使用linux格式化字符串:
"<username>{0}</username><password>{1}</password>".format("user", "pass")输出:
<username>user</username><password>pass</password>正确的命令是什么?我可以使用任何其他通配符来代替{0}和{1}。
发布于 2018-10-18 17:17:25
来自printf --help
-v VAR 将输出分配给shell变量VAR,而不是在标准输出中显示它。
所以,你需要做的是:
FMT='<username>%s</username><password>%s</password>'
printf -v VAR "$FMT" user pass发布于 2018-10-18 17:29:42
试试这种参数展开
TMPL="<username>\$U</username><password>\$P</password>"
REALNAME="Bobby"
REALPASS="Lamepass"
TMPL=${TMPL/\$U/${REALNAME}}
TMPL=${TMPL/\$P/${REALPASS}}
echo $TMPL发布于 2018-10-18 18:22:37
您使用的语法似乎是python。撇开安全性方面不说,您可以直接调用python:
var='"<username>{0}</username><password>{1}</password>".format("user", "pass")'
python3 -c "print($var)"版画
<username>user</username><password>pass</password>https://stackoverflow.com/questions/52879234
复制相似问题