我正在尝试设置监视脚本和pdf合并脚本的串联来检查我的扫描程序将pdf写入的文件夹。第一个脚本的想法是观察文件夹,直到存在两个pdf,然后调用第二个脚本。 现在问题是inotifywait检测文件的创建时间和预期的时间,并调用第二个脚本,但特别是对于较大的pdf,这会导致失败,因为扫描程序仍可能写入pdf。我将close_write事件添加到inotifywait,但我认为这被忽略,因为create事件已经为真。我添加了一个睡眠作为解决方法,但这不仅是丑陋的,即使是超过固定超时的更大文件也会失败。什么是检查两个文件是否完全写入的最佳方法。谢谢。
Foldercheck脚本:
#! /bin/bash
n=0
inotifywait -m -e create,close_write $1 | while read line
do
n=$(find $1 -type f | wc -l);
echo $n
if [ "$n" -eq "2" ] ; then
echo "found $n files"
sleep 5
./pdfMergeMove.sh $1 cleanup
n=0
fi;
done
答案 0 :(得分:1)
正如pacholik close_write所指出的,仅作为事件选项就足够了:
inotifywait -m -e close_write $1 | while read line