假设您有以下脚本:
#!/usr/bin/ksh
for element in $@
do
echo $element
done
然后使用以下命令执行脚本:
./myscript.ksh "my element"
预期输出应为:
my element
但是空格被视为每个参数的分隔符,获得:
my
element
我该如何逃离空白?
由于
答案 0 :(得分:5)
您必须将$@
放在双引号中:
#!/usr/bin/ksh
for element in "$@"
do
echo $element
done
您可以通过省略in "$@"
alltogether来获得相同的输出:
#!/usr/bin/ksh
for element
do
echo $element
done
答案 1 :(得分:2)
您必须引用$@
或不使用任何内容:
for element in "$@"
或
for element
都会奏效。