bash - 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
推荐阅读
- reactjs - Spring Boot + React 捆绑为 WebJar,带有 React 应用程序的自定义上下文路径
- matlab - 对 4 个 Matlab 数组的所有可能行求和
- javascript - React - 从数组中删除项目而不是重新渲染列表
- python - 需要有关制作直方图的建议
- unix - 直接从 Tcpdump 输出中提取 IP
- python - Python 3.8 - concurrent.futures.ProcessPoolExecutor 性能随时间下降
- python - 函数 __annotations__ dict 具有仅位置参数在位置或关键字参数之后
- java - 优化使用复合比较器和限制的数组的排序
- python-3.x - matplotlib 子图中的垂直排列
- python - 通过python函数制作“折叠列表”