用其输出替换字符串中的命令

时间:2015-08-01 18:18:33

标签: sh

在Bourne shell中,我有一个字符串变量 s ,其中包含字符序列foo $(ls) bar(不是字符串文字)。如何获取ls命令被其输出替换的字符串?

1 个答案:

答案 0 :(得分:1)

您必须使用eval,但除非您完全控制s的设置值,否则不建议这样做。

# Modified slightly for this example
$ s='foo $(echo baz) bar'
$ eval "s=\"$s\""
$ echo "$s"
foo baz bar