空格作为ksh脚本的参数

时间:2012-10-15 13:06:03

标签: linux escaping whitespace ksh

假设您有以下脚本:

#!/usr/bin/ksh

for element in $@
    do
            echo $element
done

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

./myscript.ksh "my element"

预期输出应为:

my element

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

my
element

我该如何逃离空白?

由于

2 个答案:

答案 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

都会奏效。