【发布时间】:2018-04-14 05:53:52
【问题描述】:
我是 Bash 新手,我看到 Bash 会自动进行分词:
a="1 2 3 4"
如果我回显echo $a 的“a”,我得到1 2 3 4,它隐式地进行了分词。如果我遍历“a”,我分别得到 1、2、3 和 4。
我也从here 那里读到过
shell扫描参数扩展的结果,命令 代入和算术展开,没有发生在 双引号用于分词。
我还发现如果我有
b=$a;
echo "$b"
我会得到
"1 2 3 4"
所以,这是我的问题:分词何时完成?它会改变字符串本身吗?只有当我使用echo或for(循环)时才生效?
更一般地说,bash 是如何处理它的?
【问题讨论】:
-
有用的参考资料:GNU documentation 和 Greg's Wiki - Word Splitting。