将所有脚本参数复制到另一个变量

Copy all script arguments to another variable

我需要复制所有脚本参数并将它们传递给另一个脚本。我试过这样做:

args=$@    
printargs.sh $args
echo ------
printargs.sh "$args"

但在这种情况下,如果我使用包含空格的参数调用我的父脚本,例如:

script.sh "arg 1" "arg 2"

然后打印

arg
1
arg
2
----
arg 1 arg 2

我应该如何在 bash 中执行此操作或与 POSIX 兼容?

$@就像一个数组,所以你的临时存储需要是一个数组:

args=( "$@" )      # quotes are needed there

然后使用它们:

printargs.sh "${args[@]}"