我对单词拆分在其中扮演的角色感到困惑zsh
。在使用C,Python或MATLAB进行编程时,我没有接触过这个概念,这引起了我的兴趣,为什么单词拆分似乎是Shell编程特有的。
之前,我已经在此站点和其他站点上阅读过分词的知识,但没有找到关于此概念的明确解释。维基百科对分词有一个定义,但似乎没有关于如何将其应用于Unix shell的参考。
这是我对以下方面感到困惑的示例zsh
:
在Z Shell FAQ中,我阅读以下内容:
3.1:为什么在
$var
哪里var="foo bar"
没有我所期望的?在大多数Bourne-shell派生词中,诸如多词变量
var="foo bar"
在传递给命令或在for foo in $var
循环中使用时都会分解为多个词 。默认情况下,zsh没有这种行为:该变量保持不变。(这不是错误!请参阅下文。)SH_WORD_SPLIT
存在此选项是为了提供兼容性。
但是,在《 Z Shell手册》中,我读到以下内容:
SH_WORD_SPLIT (-y) <K> <S>
导致对未引用参数扩展执行字段拆分。请注意,此选项 与分词无关。(请参阅参数扩展。)
为什么会说SH_WORD_SPLIT
有没有做与分词?单词拆分难道不是一本正经吗?
"word1 word2 word3"
列表/数组是否正确"word1" "word2" "word3"
?我还用zsh中的特定混淆源更新了OP。