我是一名有用的助手,可以为您翻译文本。
我有一个脚本来操作数据,创建参数并将它们发送到第二个脚本。其中一个参数包含空格。
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
我还尝试将脚本2中的输入转换为列表
in=($@)
,并使用for f in ${in[@]}
进行迭代,但结果相同。
因此,问题可能出现在以下几个方面:构建参数列表;传递构建好的列表;解析输入;或迭代输入。
如何从bash脚本传递带有空格的参数到另一个bash脚本?谢谢。
* 我正在Windows上使用git-bash。
for f; do
和for f in "$@"; do
是相同的。 - Etan Reisner