2016-08-10 3 views
0

私はbashスクリプティングには全く新しいので、ユーザが任意のファイル(/ etc/hosts)を任意のプログラムで開くたびに関数を実行するスクリプトを作成する必要があります。ファイルがbashで開かれたことを検出する

ファイルを開いたときにスクリプトを検出するにはどうすればよいですか?

+3

http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes –

+0

@MarcYoung:素敵な発見確かに – sjsam

+0

Linuxは[inotify](http: /man7.org/linux/man-pages/man7/inotify.7.html)システムはこの種のものを呼び出しますが、シェルスクリプトから簡単に到達することはできません.... – gilez

答えて

0

がインストールinotify-toolsパッケージ(@TobySpeightは、上記のコメントで言及したように)、あなたはこのような何かを行うことができますので、あなたは、あなたに利用できるinotifywaitコマンドを持っている場合:

while inotifywait -e open /etc/hosts 
do 
    echo 'hosts was opened!' 
done 

がありますたくさんのオプションがあります... RTFM ...見るファイルを選択するなど

私は推測していますが、上記のコードに競合状態があると思われます。スクリプトがechoコマンドを実行している間に何かファイルを開くと、通知されず、ループバック中にそれを見逃す可能性があります。多分それは問題ではないかもしれません。

関連する問題