1

假设您有以下脚本:

#!/usr/bin/ksh

for element in $@
    do
            echo $element
done

然后您使用以下命令执行脚本:

./myscript.ksh "my element"

预期的输出应该是:

my element

但空格被视为每个参数的分隔符,获得:

my
element

我应该如何逃避空白?

谢谢

4

2 回答 2

5

你必须加上$@双引号:

#!/usr/bin/ksh

for element in "$@"
do
    echo $element
done

您可以通过全部省略来获得相同的输出in "$@"

#!/usr/bin/ksh

for element
do
    echo $element
done
于 2012-10-15T13:09:42.117 回答
2

您必须引用$@,或不使用任何内容:

for element in "$@"

或者

for element

两者都可以。

于 2012-10-15T13:11:41.390 回答