如何将带有空格的参数从bash脚本传递给bash脚本?

时间:2015-07-30 14:34:55

标签: bash list for-loop argument-passing git-bash

我有一个脚本来操作数据,创建参数并将它们发送到第二个脚本。其中一个参数包含一个空格。

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。

1 个答案:

答案 0 :(得分:6)

您只需在将数组作为参数传递时添加引号:

args=()
args+=("A")
args+=("1 2")
args+=("B")
. script2.sh "${args[@]}"