【发布时间】:2023-12-22 07:04:01
【问题描述】:
我正在查看一些用于计算目录中文件数量的 shell 代码。上面写着:
COUNT=$(ls -1 ${DIRNAME} | wc -l)
-1 部分是什么意思?我在任何其他问题中都找不到关于此的任何内容,只是传递对迭代目录中文件的引用,这不是我正在查看的内容。此外,从命令中删除它似乎没有任何效果。
【问题讨论】:
-
每个文件输出一行。
-
...是的,当输出不是到终端时,这是默认设置,但显式优于隐式。
-
BTW -- 参见pubs.opengroup.org/onlinepubs/009695399/basedefs/… 的第四段 -- 保留所有大写的环境变量名;应用程序使用时应首选带有小写字符的名称。当然,您不一定是
exportingCOUNT,但 shell 变量和环境变量共享一个命名空间(shell 变量将自动覆盖/修改任何类似命名的环境变量),因此按照惯例应该首选小写名称。 -
顺便说一句——见explainshell.com/…(您可以点击进入您关心的嵌套级别,包括将
-1参数描述为ls)。 -
...shellcheck.net 也是你的朋友(会发现未引用的扩展错误,f'rinstance)。