繁体   English   中英

将一个shell脚本的所有参数传递给另一个

[英]Pass all parameters of one shell script to another

我有一个shell脚本,我传递的参数很少。 Test1.sh -a 1 -b 2 -c "One Two Three"

在Test1.sh里面我以下面的方式调用另一个shell脚本。 Test2.sh $*

我想将所有参数传递给Test2,它们传递给Test1,并且格式相同(使用双引号等)。 然而,传递给Test2的参数是Test2.sh -a 1 -b 2 -c One Two Three ,它对我不起作用。 有没有办法绕过它,以便我可以传递参数的方式与传递给Test1的方式相同。

谢谢Zabi

你需要说:

Test2.sh "$@"

请参阅特殊参数

@

从1开始扩展到位置参数。 当扩展发生在双引号内时,每个参数都会扩展为单独的单词。 也就是说, "$@"相当于"$1" "$2" ... 如果双引号扩展发生在一个单词中,则第一个参数的扩展与原始单词的开头部分连接,最后一个参数的扩展与原始单词的最后一部分连接。 当没有位置参数时, "$@"$@扩展为空(即,它们被删除)。

手册说:

"$*"相当于"$1c$2c..." ,其中cIFS变量值的第一个字符。

这解释了你正在观察的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM