ファイルが変更されたことを確認する Bash スクリプト

ファイルが変更されたことを確認する Bash スクリプト

ファイルが変更されたことを確認するスクリプトを作成しようとしています。そうであれば、スクリプトは引き続き実行され、echo "Error!"そうでなければスクリプトは引き続き実行されます。

私のスクリプト

#!/bin/bash
date=$(stat -c %y)$1
while true
         do date2=$(stat -c %y$1)
                if (date2 != date)
                        echo "error!"
        done

エラーがありますか?

ベストアンサー1

あなたはそれを使用することができますinotifywaitもっと読む

inotifywait - inotifyを使用してファイルの変更を待ちます。

inotifywait は、Linux の inotify(7) インタフェースを使用してファイルの変更を効果的に待ちます。シェルスクリプトでファイルの変更を待つのに適しています。イベントが発生した後に終了することも、イベントが発生している間もイベントを実行して出力することもできます。

次のコマンドを使用します。

$ inotifywait -m -e modify /tmp/testfile

testfile書くときにinotifywait通知を受け取る

例えば。

echo "bh" > /tmp/testfile

inotifywait次のメッセージを表示します。

$ inotifywait -m -e modify /tmp/testfile
Setting up watches.  
Watches established.
testfile MODIFY 
testfile MODIFY 

while出力をステートメントにリダイレクトすることもできます。

while read j
do
   echo "file changed"
   break
done <  <(inotifywait -q -e modify /tmp/testfile)

おすすめ記事