bash发送字符串参数作为多个参数

tre*_*065 2 bash

因此,我有一个bash脚本,该脚本正在生成要运行的命令字符串。输出看起来像

$ program "command1 command2 ... commandN"

但是程序正在(按理)将“ command1 command2 ... commandN”解释为一个参数。

是否有办法将字符串作为分割参数传递给参数,以便程序将每个命令解释为单独的参数?

$ program command1 command2 ... commandN

谢谢你的帮助。

Blu*_*sky 6

我已经完成了这一步,实现了您的方案:这个想法是使用“ ab c”作为参数 cat

$ echo a > a
$ echo b > b
$ echo c > c
$ args="a b c"
Run Code Online (Sandbox Code Playgroud)

尝试将“ ab c”作为“一个参数”

$ cat $args
cat: a b c: No such file or directory
Run Code Online (Sandbox Code Playgroud)

变元分开的解决方法:

$ cat $(echo $args)
a
b
c
Run Code Online (Sandbox Code Playgroud)

希望对您有帮助

(所以你应该跑 program $(echo "command1 command2 ... commandN")

  • 对于本身可以包含空格和/或包含外壳元字符的参数,这是不安全的。正确的方法是使用数组或参数而不是字符串,有关更多详细信息,请参见[Bash FAQ 0050](http://mywiki.wooledge.org/BashFAQ/050)。 (3认同)