我有以下bash两个脚本
a.sh:
#!/bin/bash
./b.sh 'My Argument'
b.sh:
#!/bin/bash
someApp $*
someApp二进制文件接收$*
作为2个参数('My'和'Argument')而不是1。
我测试了几件事:
b.sh
按预期运行某些应用程序b.sh
中的参数按预期工作$@
代替$*
并没有什么区别答案 0 :(得分:120)
$*
,不带引号,扩展为两个字。您需要引用它以便someApp
收到一个参数。
someApp "$*"
您可能希望使用$@
,以便someApp
如果要将b.sh
称为
b.sh 'My first' 'My second'
使用someApp "$*"
,someApp
会收到一个参数My first My second
。使用someApp "$@"
,someApp
会收到两个参数My first
和My second
。