我有以下bash两个脚本
灰:
#!/bin/bash ./b.sh 'My Argument'
b.sh:
#!/bin/bash someApp $*
someApp二进制接收$ *作为2个参数(‘My’和’Argument’)而不是1。
我测试了几件事:
>运行someApp只通过b.sh按预期工作
> Iterate echo b.sh中的参数按预期工作
>使用$ @而不是$ *不起作用
$ *,无引号,扩展为两个字。你需要引用它,以便someApp接收一个参数。
someApp "$*"
这可能是你想使用$ @,所以someApp将收到两个参数,如果你调用b.sh as
b.sh 'My first' 'My second'
有了someApp“$ *”,someApp会收到一个单独的参数我的第一个我的第二。有了someApp“$ @”,someApp会收到两个参数,我的第一个和我的第二个。