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

Linux Bash脚本等待多文件存在问题排查及跨目录咨询

问题分析与修正方案

原脚本的错误点

  • 变量赋值语法错误:Bash变量赋值时,=前后不能有空格,原代码TMP_TRG_FILE = 'f1 f2 f3'会被解析为执行TMP_TRG_FILE命令,直接导致后续逻辑全部异常。
  • 循环输入方式错误:done < $TMP_TRG_FILE试图读取名为f1 f2 f3的文件(而非读取字符串内容),不符合需求逻辑。
  • 错误使用print命令:Bash中没有print命令,应替换为echo。

修正后的脚本

touch TESTING12

# 用数组存储目标文件,处理多文件场景更稳定
TRIGGER_FILES=('f1' 'f2' 'f3')

for trigger_file in "${TRIGGER_FILES[@]}"
do
    while [[ ! -e "$trigger_file" ]]
    do
        echo "Waiting for trigger file: $trigger_file"
        sleep 5
    done
done

touch TESTING34

关于跨目录文件等待的问题

完全可以等待其他目录下的文件,只需在数组中填写正确的相对路径或绝对路径即可。示例如下:

TRIGGER_FILES=(
    '../dir1/f1'
    '../dir2/f2'
    '../dir3/f3'
)

脚本会自动根据路径判断文件是否存在,逻辑和等待当前目录文件完全一致。

内容的提问来源于stack exchange,提问作者Mr T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:30:36