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
,该怎么办?我应该将它们的值保存在一个单独的变量中吗?我可能会这样做,但我在答案中添加了另一个解决方案。