ファイルが変更されるたびにファイルを実行したいと思う

ファイルが変更されるたびにファイルを実行したいと思う

私はX回実行した後に自動的に終了するPythonスクリプトを持っています。プログラムの開始時に次の値を設定します。再起動.txtこのコードを使用して 0 にします。

restart = open("restart.txt", "w")
restart.write("0")
restart.close()

次に、プログラムの終了時にファイルを 1 にリセットして、inotify次のように を使用して再開できるようにします。

restart = open("restart.txt", "w")
restart.write("1")
restart.close()
exit //closes program

inotifyスクリプトか何かが欲しいのですが、再起動.txt1 に変更し、プログラムを再度開くには、再起動します。

inotifyスクリプトやそれに類似するものを使用してこれを実行するにはどうすればよいですか?

答え1

次の bash コード スニペットは、実行可能な bash スクリプト内に配置できます。

     FORMAT=$(echo -e "\033[1;33m%w%f\033[0m written")
     while /usr/bin/inotifywait -qe close_write --format "$FORMAT" restart.txt
     do
             [ $(cat restart.txt) -eq 1] && /path/to/program/to/be/executed || echo "nothing to do"
     done

inotifywaitの呼び出しは、restart.txtファイルを監視します。qイベントのuietモード(つまり、一部の出力を抑制する)(-e)は書き込みのために開いたファイルを閉じる。 しかし、inotifywaitファイルが実際に書き込まれたかどうかを区別できないため、次の行でテストを実装します。restart.txt に が含まれている場合は1ファイルを実行しますが、まだ が含まれている場合は0何もしません。

関連情報