我有以下bash两个脚本
灰:
#!/bin/bash
./b.sh 'My Argument'
Run Code Online (Sandbox Code Playgroud)
b.sh:
#!/bin/bash
someApp $*
Run Code Online (Sandbox Code Playgroud)
someApp二进制文件接收$*2个参数('My'和'Argument')而不是1.
我测试了几件事:
b.sh按预期工作b.sh按预期迭代+回显工作中的参数$@而不是$*没有区别che*_*ner 133
$*,未引用,扩展为两个字.你需要引用它以便someApp接收一个参数.
someApp "$*"
Run Code Online (Sandbox Code Playgroud)
这有可能是您要使用$@代替,这样someApp如果你要打电话将获得两个参数b.sh为
b.sh 'My first' 'My second'
Run Code Online (Sandbox Code Playgroud)
有了someApp "$*",someApp会收到一个论点My first My second.有了someApp "$@",someApp会收到两个参数,My first和My second.