首页 > 解决方案 > Bash 格式字符串。用值替换占位符。

问题描述

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

"<username>{0}</username><password>{1}</password>".format("user", "pass")

输出:

<username>user</username><password>pass</password>

执行此操作的正确命令是什么?我可以改用任何其他{0}通配符{1}

标签: stringbashstring-formatting

解决方案


来自printf --help

-v var    将输出分配给 shell 变量 VAR 而不是在标准输出上显示

所以,你需要做的只是:

FMT='<username>%s</username><password>%s</password>'
printf -v VAR "$FMT" user pass

推荐阅读