我有这段代码
for p in "abra/cadabra reach/out"
do
r="$HOME/x/$p"
echo $r
done
但它只会产生这个:
/Users/terrencemonroebrannon/x/abra/cadabra reach/out
不
/Users/terrencemonroebrannon/x/abra/cadabra /Users/terrencemonroebrannon/x/reach/out
正如我所料。
答案 0 :(得分:5)
您已将两个项目放在引号中,bash将其解释为单个标记。这就是引用的目的。如果你要删除引号,你会得到你描述的行为:
for p in abra/cadabra reach/out
do
r="$HOME/x/$p"
echo $r
done
给我:
/Users/lars/x/abra/cadabra
/Users/lars/x/reach/out
答案 1 :(得分:2)
bash会将"abra/cadabra reach/out"
视为一个令牌
不需要报价。
for p in abra/cadabra reach/out
do
r="$HOME/x/$p"
echo $r
done