[英]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..."
,其中c
是IFS
变量值的第一个字符。
这解释了你正在观察的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.