我不得不问你这个问题,因为太多天以来它让我发疯了。
我将用一个例子解释我的问题:
-rwxr-x--- u1:g1 /var/www/example1.com
-rwxr-x--- u2:g1 /var/www/example2.com
-rwxrwx--- httpd:httpd /var/www/example1-example2-log.com
输出结果为:
s1="aa a"
s2="bbb"
s3="ccc"
s4="ddd"
v=($s1 $s2 $s3 $s4)
echo ${v[0]}
echo ${v[1]}
echo ${v[2]}
echo ${v[3]}
echo ${v[4]}
我的问题是aa
a
bbb
ccc
ddd
包含v[0]
而"aa"
包含v[1]
。我不明白为什么"a"
不是v[0]
。
我的输出应该是:
"aa a"
... aa a
bbb
ccc
ddd
应为空
为什么空间会产生这个问题?
答案 0 :(得分:0)
您需要在变量周围添加双引号,如下所示:
v=("$s1" "$s2" "$s3" "$s4")
...这样你就得到了:
v=("aa a" "bbb" "ccc" "ddd")
将变量置于双引号内通常总是一个好主意。
如果没有引号,您将获得以下内容:
v=(aa a bbb ccc ddd)
...所以aa
& a
被解释为2个单独的字符串。