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

前端之家收集整理的这篇文章主要介绍了在(bash)脚本之间传递带有空格的参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下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会收到两个参数,我的第一个和我的第二个。

猜你在找的Bash相关文章