我是Bash的新手,发现Bash会自动进行单词拆分:
a="1 2 3 4"
如果我用
echo $a
输出"a",那么我会得到1 2 3 4
,这是因为隐式地进行了单词分割。如果我循环使用"a",则分别得到1、2、3和4。我还从这里了解到:
我还发现,如果我有以下内容:Shell会扫描未在双引号内出现的参数扩展、命令替换和算术扩展的结果以进行单词分割。
b=$a;
echo "$b"
I would get
"1 2 3 4"
那么,这是我的问题:什么时候进行单词拆分?它会改变字符串本身吗?它只有在我使用 echo
或 for
(循环)时才生效吗?
更一般地说,bash 如何处理它?