我对bash脚本非常陌生,我需要创建一个脚本,只要用户使用任何程序打开给定文件(/ etc / hosts),它就会运行一个函数。
如何在文件打开时检测脚本?
答案 0 :(得分:0)
如果您安装了inotify-tools
软件包(如上面评论中提到的@TobySpeight),那么您可以使用inotifywait
命令,因此您可以执行以下操作:
while inotifywait -e open /etc/hosts
do
echo 'hosts was opened!'
done
有很多选项...... RTFM ...选择要观看的文件等等。
我猜,但我怀疑上面的代码中存在竞争条件。如果在脚本运行echo
命令时打开文件,它将不会注意到,并且在循环返回时可能会错过它。也许这无关紧要。