Shell脚本传递带有变量的字符串,以便以后分配

时间:2013-06-06 14:58:33

标签: bash shell

我正在使用Mac OSX并使用bash作为我的shell。我想知道是否有任何方法可以创建一个带有一些标记的字符串,稍后会对其进行评估。如:

Str=$(printf '%d is %s' "5" (#some string I don't know yet) )

Later...

some string I don't know yet="something I know now"
echo Str               #produces: 5 is something I know now

我知道在大多数情况下这可以通过移动我放置变量的位置的顺序来解决,但在这种情况下我希望顺序是原样的。或者这甚至不可能?谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

当然,只需使用printf两次。第一次,转义%s以使其按原样进入字符串,第二次将其用作格式字符串。

Str=$(printf '%d is %%s' 5)
New="something I know now"
printf "${Str}" "${New}"