【发布时间】:2016-03-29 09:14:12
【问题描述】:
假设您将以下命令存储在变量中:
COMMAND='echo hello'
有什么区别
$ eval "$COMMAND"
hello
$ bash -c "$COMMAND"
hello
$ $COMMAND
hello
?如果最后一个版本更短并且(据我所见)完全相同,为什么几乎从不使用它?
【问题讨论】:
-
BashFAQ #50 直接就点:mywiki.wooledge.org/BashFAQ/050
-
...也就是说:它演示了为什么最后一个版本对于非平凡的命令完全被破坏了。
-
尝试以这种方式运行
printf '%s\n' "hello world",例如:您将在一行中看到"hello,然后在第二行看到world"——因为引号不会被解析为语法。