1

我有这个代码

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

正如我所料。

4

2 回答 2

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
于 2012-04-19T15:26:45.243 回答
2

bash 将"abra/cadabra reach/out"被视为一个令牌。
不需要报价。

for p in abra/cadabra reach/out
do
        r="$HOME/x/$p"
        echo $r
done
于 2012-04-19T15:26:43.767 回答