我有一个脚本来操作数据,创建参数并将它们发送到第二个脚本。其中一个参数包含一个空格。
script1.sh:
args=()
args+=("A")
args+=("1 2")
args+=("B")
. script2.sh ${args[@]}
script2.sh:
for f in "$@"
do
echo f=$f
done
我想将"1 2"
作为单个参数,但是单独接收它们:
f=A
f=1
f=2
f=B
我还尝试将script2中的输入转换为列出in=($@)
并使用for f in ${in[@]}
进行迭代,但结果相同。
因此,问题可能出现在下列之一:构建参数列表;通过建成的清单;解析输入;或迭代输入。
如何将带有空格的参数从bash脚本传递给bash脚本?谢谢。
*我在Windows上使用git-bash。
答案 0 :(得分:6)
您只需在将数组作为参数传递时添加引号:
args=()
args+=("A")
args+=("1 2")
args+=("B")
. script2.sh "${args[@]}"