我有一个这样的脚本:
foo=0
bar=0
while [[ $# -gt 0 ]]; do
key=$1
case $key in
--foo)
foo="$2"
shift
;;
--bar)
bar="$2"
shift
;;
esac
shift
done
echo $foo
echo $bar
我希望将args收集为数组,然后一起传递。如果我这样做,它可以工作:
args=(--foo 1 --bar 2)
script.sh ${args[@]}
但是,如果我将棋子构建成碎片,它就不起作用了:
args=(--foo 1)
args+=(--bar 2)
script.sh ${args[@]}
结果在消息"无效的输入参数"
我也尝试过:
args=( "${args[@]}" --bar 2)
但得到了同样的结果。想法?