我是 Bash 的新手,我看到 Bash 会自动进行分词:
a="1 2 3 4"
如果我 echo "a" by echo $a
I got 1 2 3 4
,它隐式地进行了分词。如果我遍历“a”,我分别得到 1、2、3 和 4。
我也从这里读到
shell 会扫描双引号内未出现的参数扩展、命令替换和算术扩展的结果以进行分词。
而且我还发现,如果我有
b=$a;
echo "$b"
我会得到
"1 2 3 4"
所以,这是我的问题:分词什么时候完成?它会改变字符串本身吗?echo
是不是只有在我使用or for
(循环)的时候才生效?
更一般地说,bash 如何处理它?