不断检查文件是否被修改 bash

aDo*_*DoN 10 linux bash monitoring shell-script files

我在脚本中有一个名为 file1 的文件,每当它发生变化时,就做一些事情,实际上是发出哔哔声。我怎么做?

wur*_*tel 15

如果您已经inotify-tools安装(至少这是 Debian 上的软件包名称),那么您可以执行以下操作:

while inotifywait -q -e modify filename >/dev/null; do
    echo "filename is changed"
    # do whatever else you need to do
done
Run Code Online (Sandbox Code Playgroud)

这将等待名为“filename”的文件发生“modify”事件。当这种情况发生时,inotifywait命令输出filename MODIFY(我们通过将输出发送到 /dev/null 来丢弃它)然后终止,这会导致进入循环体。

阅读手册页以inotifywait获得更多可能性。