Bash:将命令存储在变量CMD中,然后使用$CMD运行它会失败



在Bash上,我首先为命令行Bash指令定义一个变量CMD,然后运行它。哪里出了问题?

$ CMD="VERBOSE=1 ./myscript"
$ $CMD
bash: VERBOSE=1: command not found
不要将命令存储在变量中。变量不够聪明,无法保存命令。他们会一次又一次地让你失望,就像你从不洗碗的室友一样。

使用函数。它们是适合这份工作的工具。您可以像使用常规可执行文件一样使用它们;他们可以接受争论;不存在引号/反斜杠/空格问题。

$ cmd() {
>     VERBOSE=1 ./myscript
> }
$ cmd

功能就在它所在的位置。

另请参阅:

  • 如何创建一个bash环境变量,在命令之前加上环境变量的前缀

最新更新