(bash)脚本之间的空格传递参数

我有以下bash两个脚本

灰:

#!/bin/bash ./b.sh 'My Argument' 

b.sh:

 #!/bin/bash someApp $* 

someApp二进制接收$*作为2个参数('我'和'参数'),而不是1。

我testing了几件事情:

  • 运行someApp只能通过b.sh作品按预期
  • 迭代+回显b.sh的参数按预期工作
  • 使用$@而不是$*并没有什么区别

$* ,不加引号,扩展为两个单词。 你需要引用它,以便someApp收到一个参数。

 someApp "$*" 

有可能你想要使用$@ ,所以如果你打电话给b.shsomeApp会收到两个参数

 b.sh 'My first' 'My second' 

使用someApp "$*"someApp会收到一个参数My first My second 。 使用someApp "$@"someApp会收到两个参数, My firstMy second