将一个shell脚本的所有参数传递给另一个shell脚本
我有一个shell脚本,我向它传递了一些参数。将一个shell脚本的所有参数传递给另一个shell脚本,shell,unix,Shell,Unix,我有一个shell脚本,我向它传递了一些参数。 Test1.sh-a1-b2-c“一二三” 在Test1.sh内部,我以下面的方式调用另一个shell脚本。 Test2.sh$* 我想将所有参数传递给Test2,这些参数传递给Test1,并且格式相同(带有双引号等)。 但是,传递给Test2的参数是 Test2.sh-a1-b2-c123 这对我不起作用。是否有一种方法可以绕过它,以便我可以像传递给Test1一样传递参数 谢谢 扎比你需要说: Test2.sh "$@" 参考: @ 展开到位置
Test1.sh-a1-b2-c“一二三”
在Test1.sh内部,我以下面的方式调用另一个shell脚本。
Test2.sh$*
我想将所有参数传递给Test2,这些参数传递给Test1,并且格式相同(带有双引号等)。
但是,传递给Test2的参数是
Test2.sh-a1-b2-c123
这对我不起作用。是否有一种方法可以绕过它,以便我可以像传递给Test1一样传递参数
谢谢
扎比你需要说:
Test2.sh "$@"
参考:
@
展开到位置参数,从一开始。当
展开发生在双引号内,每个参数展开为
单独的词。也就是说,“$@”
相当于“$1”“$2”…
。如果
双引号展开发生在一个单词中,即
第一个参数与原始参数的开始部分连接
word,最后一个参数的展开式与最后一个参数联接
原词的一部分。如果没有位置参数,
“$@”
和$@
扩展为零(即,它们被删除)
手册上说:
“$*”
相当于“$1c$2c…”
,其中c
是第一个
IFS
变量值的字符
这就解释了你观察到的结果