用输出替换字符串中的命令
Replacing a command in a string with its output
在 Bourne shell 中,我有一个字符串变量 s,它包含字符序列 foo $(ls) bar
(这不是字符串文字)。如何获取 ls
命令被其输出替换的字符串?
您将不得不使用 eval
,但不推荐这样做,除非您完全控制 s
的值的设置方式。
# Modified slightly for this example
$ s='foo $(echo baz) bar'
$ eval "s=\"$s\""
$ echo "$s"
foo baz bar
在 Bourne shell 中,我有一个字符串变量 s,它包含字符序列 foo $(ls) bar
(这不是字符串文字)。如何获取 ls
命令被其输出替换的字符串?
您将不得不使用 eval
,但不推荐这样做,除非您完全控制 s
的值的设置方式。
# Modified slightly for this example
$ s='foo $(echo baz) bar'
$ eval "s=\"$s\""
$ echo "$s"
foo baz bar