假设我的父脚本使用n
参数调用,并且我想将参数 #3 中的所有参数传递给子脚本。
我如何在 bash 脚本中做到这一点?
我知道$@
会给你整个参数列表,这不是我想要的。
像这样:
child_script "${@:3}"
如果您想从参数 3 开始传递四个参数:
child_script "${@:3:4}"
用于shift
删除前两个参数:
shift 2
child_script "$@"
如果您需要使用$1
and $2
,您可以先将它们保存在变量中。
另一种选择是将参数分配给数组:
args=("$@")
删除数组的前两个元素:
unset args[0]
unset args[1]
然后用这个数组调用子脚本:
child_script "${args[@]}"
至于保留原始值的讨论:您可以在子脚本中进行转换。