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

时间:2013-07-19 18:11:59

标签: bash

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

我如何在bash脚本中执行此操作?

我知道$@会得到整个参数列表,这不是我想要的。

3 个答案:

答案 0 :(得分:5)

像这样:

child_script "${@:3}"

如果你想从参数3开始传递四个参数:

child_script "${@:3:4}"

答案 1 :(得分:4)

使用shift删除前两个参数:

shift 2
child_script "$@"

如果您需要使用$1$2,可以先将它们保存在变量中。

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

args=("$@")

删除数组的前两个元素:

unset args[0]
unset args[1]

然后使用此数组调用子脚本:

child_script "${args[@]}"

答案 2 :(得分:0)

关于保持原始价值的讨论: 你可以在子脚本中进行转换。