如何仅在存在kill_by_pid文件的子文件夹中执行Process.sh脚本
修改后的命令实现条件执行
这里给你调整好的命令,它会只在子文件夹存在kill_by_pid文件时才运行Process.sh:
for d in ./*/ ; do # 检查当前子文件夹下是否存在kill_by_pid普通文件 if [ -f "$d/kill_by_pid" ]; then # 保持原命令的子shell执行逻辑,避免影响当前工作目录 (cd "$d" && ../Process.sh) fi done
关键细节说明:
-f "$d/kill_by_pid":这个条件用来验证目标路径下确实存在一个普通文件(如果kill_by_pid可能是符号链接或目录,你可以把-f换成-e来检查任意类型的存在项)- 保留了原命令的子shell
(...)写法:这样进入子文件夹的操作只会在这个临时shell里生效,执行完脚本后自动回到原来的工作目录,和你原本的命令行为完全一致 - 循环逻辑和原命令保持兼容:依然遍历当前目录下所有直接子文件夹,跳过不符合条件的目录继续执行
内容的提问来源于stack exchange,提问作者Carsten2015
相关产品推荐
相关产品推荐

