例如,使用此脚本:
#!/bin/bash
for a in $@
do
echo $a
done
运行:./script "x y" z
返回:
x
y
z
并不是:
x y
z
这是为什么?
我如何将带有空格的字符串参数传递给 bash?
我用Bash 4.3.33
。
答案1
引用$@
:
#!/bin/bash
for a in "$@"
do
echo "$a"
done
输出:
XY z
答案2
请注意,在处理时$@
您可以将其简化为
for a
do
echo "$a"
done
如果“用言语...;”不存在,则假定为“in "$@"”。