Bash 脚本:我目前应该在一个目录中有 500 个文件,如果缺少任何文件,我该如何停止 bash 脚本?



我目前有一个应该有500个文件的目录。每个文件的名称形式为List.1.rds, ... List.500.rds。我可以看到缺少哪些的方法是通过 bash 中的以下代码:

for((i=1; i<=500; i++)); do name="List.${i}.rds"; [[ ! -e "$name" ]] && echo "missing $name"; done

如果文件丢失,它将返回缺少的文件名。但是,我想更进一步,如果缺少任何文件,请停止整个脚本。有没有办法做到这一点?谢谢。

它可以像在文件丢失时设置标志一样简单:

miss=0
for ((i=1;i<=500;i++)); do
file=List.$i.rds
if [[ ! -e $file ]]; then
echo "Missing $file"
miss=1
fi
done
# exit if "miss" flag is 1
((miss)) && exit 1

最新更新