(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.sh
, someApp
会收到两个参数
b.sh 'My first' 'My second'
使用someApp "$*"
, someApp
会收到一个参数My first My second
。 使用someApp "$@"
, someApp
会收到两个参数, My first
和My second
。