Bash 将部分参数列表从父脚本传递给子脚本

Bash 将部分参数列表从父脚本传递给子脚本,bash,Bash,假设使用n参数调用我的父脚本,并且我希望将所有参数从参数#3传递给子脚本 如何在bash脚本中实现这一点 我知道$@将为您提供整个参数列表,这不是我想要的。使用shift删除前两个参数: shift 2 child_script "$@" 如果需要使用$1和$2,可以先将它们保存在变量中 另一个选项是将参数分配给数组: args=("$@") 删除阵列的前两个元素: unset args[0] unset args[1] 然后使用此数组调用子脚本: child_script "${args

假设使用
n
参数调用我的父脚本,并且我希望将所有参数从参数#3传递给子脚本

如何在bash脚本中实现这一点


我知道
$@
将为您提供整个参数列表,这不是我想要的。

使用
shift
删除前两个参数:

shift 2
child_script "$@"
如果需要使用
$1
$2
,可以先将它们保存在变量中

另一个选项是将参数分配给数组:

args=("$@")
删除阵列的前两个元素:

unset args[0]
unset args[1]
然后使用此数组调用子脚本:

child_script "${args[@]}"
像这样:

child_script "${@:3}"
如果要传递从参数3开始的四个参数:

child_script "${@:3:4}"

关于保持原始值的讨论:
您可以在子脚本中执行移位。

但是如果我想在文件中稍后使用
$1
$2
,该怎么办?我应该将它们的值保存在一个单独的变量中吗?我可能会这样做,但我在答案中添加了另一个解决方案。