gpt4 book ai didi

linux - BASH:如果目录中的文件数为 2 或更多,则需要运行 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 04:39:13 25 4
gpt4 key购买 nike

我有以下 BASH 脚本: http://pastebin.com/CX4RN1QW

只有当目录中的文件数量为 2 个或更多时,我才想运行脚本中的两个部分。它们由 ## 在此处开始文件测试## 结束文件测试标记。

我对脚本非常敏感,我不想改变任何其他内容,即使它简化了它。

我已经尝试过:

if [ "$(ls -b | wc -l)" -gt 1 ];

但这并没有奏效。

最佳答案

您可以使用 glob 来检查目录中是否存在文件,而不是使用外部 ls 命令:

编辑我错过了您正在寻找 > 2 个文件。已更新。

shopt -s nullglob # cause unmatched globs to return empty, rather than the glob itself
files=(*) # put all file in the current directory into an array
if (( "${#files[@]}" >= 2 )); then # since we only care about existence, we only need to expand the first element
...
fi
shopt -u nullglob # disable null glob (not required)

关于linux - BASH:如果目录中的文件数为 2 或更多,则需要运行 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com