假设我的父脚本使用n
参数调用,并且我想将参数#3中的所有参数传递给子脚本。
我如何在bash脚本中执行此操作?
我知道$@
会得到整个参数列表,这不是我想要的。
答案 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)
关于保持原始价值的讨论: 你可以在子脚本中进行转换。