You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux单行find脚本如何实现未找到文件时返回非零退出码

单行Linux脚本实现SQL文件查找与缺失检查

完整单行脚本

expected_list=$(find DOC/ -name script.txt -exec cat {} \; | awk '/^[^-].*\.sql$/{print}'); expected_count=$(echo "$expected_list" | wc -l); found_count=$(echo "$expected_list" | xargs -I sql_file find . -name sql_file -type f | tee sql_scripts.txt | wc -l); [ "$found_count" -lt "$expected_count" ] && exit 1 || exit 0

脚本拆解说明

  • 提取目标SQL文件名:find DOC/ -name script.txt -exec cat {} \; | awk '/^[^-].*\.sql$/{print}' 遍历DOC目录下所有script.txt,提取其中不以-开头且以.sql结尾的文件名,保存到expected_list变量中。
  • 统计期望数量:expected_count=$(echo "$expected_list" | wc -l) 统计需要查找的SQL文件总数。
  • 查找并记录结果:echo "$expected_list" | xargs -I sql_file find . -name sql_file -type f | tee sql_scripts.txt 递归查找当前目录及子目录中匹配的SQL文件,将路径写入sql_scripts.txt。
  • 检查缺失并返回退出码:[ "$found_count" -lt "$expected_count" ] && exit 1 || exit 0 对比找到的文件数量与期望数量,若存在未找到的SQL文件,返回非零退出码(1),否则返回0。

补充说明

  • 脚本通过变量缓存期望的文件列表,避免重复执行提取逻辑,提升效率;
  • tee命令同时实现结果写入文件和输出到管道,方便同步统计找到的文件数量;
  • 无论是否找到文件,sql_scripts.txt都会被生成(无匹配时为空),同时脚本严格按需求返回对应退出码。

内容的提问来源于stack exchange,提问作者user22659171

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:02:51