我需要检查所有子目录并报告它们包含多少文件(无需进一步递归):
directoryName1 numberOfFiles
directoryName2 numberOfFiles
Run Code Online (Sandbox Code Playgroud) 我对分词在zsh
. 我在用 C、Python 或 MATLAB 编程时没有接触过这个概念,这引发了我的兴趣,为什么分词似乎是特定于 shell 编程的东西。
我之前在这个网站和其他网站上读过关于分词的文章,但没有找到对这个概念的明确解释。维基百科有分词的定义,但似乎没有关于它如何应用于 Unix shell 的参考。
这是我在以下方面的困惑的一个例子zsh
:
在Z Shell FAQ 中,我阅读了以下内容:
3.1: 为什么
$var
wherevar="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
有没有做与分词?分词不正是这一切的意义所在吗?