2

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

我如何在 bash 脚本中做到这一点?

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

4

3 回答 3

5

像这样:

child_script "${@:3}"

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

child_script "${@:3:4}"
于 2013-07-19T18:37:06.943 回答
4

用于shift删除前两个参数:

shift 2
child_script "$@"

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

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

args=("$@")

删除数组的前两个元素:

unset args[0]
unset args[1]

然后用这个数组调用子脚本:

child_script "${args[@]}"
于 2013-07-19T18:13:38.577 回答
0

至于保留原始值的讨论:您可以在子脚本中进行转换。

于 2013-07-19T21:23:47.163 回答