我想每次文件更改时执行一个文件

我想每次文件更改时执行一个文件

我有一个 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 文件,在事件的安静模式(即抑制某些输出)(-e),即打开文件进行写入后关闭。 然而,通知等待无法区分文件是否真正被写入,因此下面一行实现了一个测试:如果 restart.txt 包含1,则执行某些文件,但如果仍然包含,0则不执行任何操作。

相关内容