如何检查特定文件名和退出状态是否存在?(如果不成功则循环直至成功)

如何检查特定文件名和退出状态是否存在?(如果不成功则循环直至成功)

我是一名 Bash 脚本新手,在 Google 上搜索此场景大约六个小时,但无果。我找到了部分所需内容,但没有找到全面的解决方案。

问题如下:我需要编写一些代码来检查 3 个文件是否存在(file1.txtfile2.csvfile3.log)。但在继续之前,我需要确认file3.log已停止写入(这是为了确认创建 3 个文件的脚本已成功完成)。

检查这些文件是否存在似乎很容易,使用如下方法:

if [ -f -e /path/to/file/file1.txt && /path/to/file/file2.csv && /path/to/file/file3.log]
then
# somehow check the exit status of file3.log
if [$? !=0]
#somehow loop (maybe every 5 minutes) until $?=0
done

或者

我也在想,我是否可以避免所有这些,只检查初始脚本的退出状态?但我不确定,因为如果发生某种故障并且文件没有创建,那么这将是一个严重的问题,因为扫描过程的下一部分大约需要 2 天时间......

抱歉,如果这可能看起来像一个愚蠢的问题,我已经深陷谷歌“if-until-exit-zero-else...”的泥潭,不知道接下来该做什么。

答案1

要检查命名的程序或脚本是否已完成,请使用以下命令:

wait $(pgrep program-name)

相关内容