我想每次文件更改時執行一個文件

我想每次文件更改時執行一個文件

我有一個 python 腳本,在 X 次運行後自動結束,在程式開始時它設定的值重啟.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腳本或類似的東西,當重啟.txt修改為1,再次開啟程序,重新啟動。

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)這是開啟檔案進行寫入後關閉文件。然而,inotify等待無法區分文件是否真的被寫入,因此下面的行實現了一個測試:如果 restart.txt 包含1,則執行某個文件,但如果仍然包含0則不執行任何操作。

相關內容