将一个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 "$@" 参考: @ 展开到位置

我有一个shell脚本,我向它传递了一些参数。
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
变量值的字符

这就解释了你观察到的结果