ファイルを読んだ後にファイルが変更された場合は、スクリプトをチェックインする必要があります (別のアプリケーションがその間にファイルを変更する可能性があります)。bash のマニュアルによると、最後に読み取ってからファイルが変更されたかどうかを報告する "-N" テストがあります。小さなスクリプトで試してみましたが、うまくいかないようです。
#!/bin/bash
file="test.txt"
echo "test" > $file
cat $file;
if [ -N $file ];
then echo "modified since read";
else
echo "not modified since read";
fi
別のファイルに触れて使用する別の方法も試しました
if [ "file1" -nt "file2 ];
ただし、これは秒単位の精度でのみ機能し、まれな状況では不十分な場合があります。この問題に対する他の bash 組み込みのソリューションはありますか、それとも本当に diff または md5sum を使用する必要がありますか?