1

我正在使用 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

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

4

1 回答 1

4

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

Str=$(printf '%d is %%s' 5)
New="something I know now"
printf "${Str}" "${New}"
于 2013-06-06T15:00:58.177 回答