【发布时间】:2021-04-25 03:50:49
【问题描述】:
是否可以在格式化中多次使用传递给printf 的变量?
例如,用这一行:
printf 'Hi %s, welcome to %s. %s is a great place to work. Thanks %s.' "John" "The Icecream Factory"
如何“重用”printf 中的第一个和第二个变量?
我在想这样的事情:
printf 'Hi %s[1], welcome to %s[2]. %s[1] is a great place to work. Thanks %s[2].' "John" "The Icecream Factory"
...但显然不是这样。
期望的输出
Hi John, welcome to The Icecream Factory. The Icecream Factory is a great place to work. Thanks John.
实际输出
Hi John, welcome to The Icecream Factory. is a great place to work. Thanks .
工作环境是 Ubuntu 20 中的bash。
【问题讨论】:
-
我不相信
printf格式字符支持这一点。您必须使用%s的原因是什么?定义变量更容易,可以在字符串中多次使用,例如n="John"; f="The Icecream Factory"; printf "Hi $n, welcome to $f. $f is a great place to work. Thanks $n." -
是的,这很好用,但有人告诉我在
printf格式字符串中使用变量是不好的做法:github.com/koalaman/shellcheck/wiki/SC2059