0
私はbashスクリプティングには全く新しいので、ユーザが任意のファイル(/ etc/hosts)を任意のプログラムで開くたびに関数を実行するスクリプトを作成する必要があります。ファイルがbashで開かれたことを検出する
ファイルを開いたときにスクリプトを検出するにはどうすればよいですか?
私はbashスクリプティングには全く新しいので、ユーザが任意のファイル(/ etc/hosts)を任意のプログラムで開くたびに関数を実行するスクリプトを作成する必要があります。ファイルがbashで開かれたことを検出する
ファイルを開いたときにスクリプトを検出するにはどうすればよいですか?
がインストールinotify-tools
パッケージ(@TobySpeightは、上記のコメントで言及したように)、あなたはこのような何かを行うことができますので、あなたは、あなたに利用できるinotifywait
コマンドを持っている場合:
while inotifywait -e open /etc/hosts
do
echo 'hosts was opened!'
done
がありますたくさんのオプションがあります... RTFM ...見るファイルを選択するなど
私は推測していますが、上記のコードに競合状態があると思われます。スクリプトがecho
コマンドを実行している間に何かファイルを開くと、通知されず、ループバック中にそれを見逃す可能性があります。多分それは問題ではないかもしれません。
http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes –
@MarcYoung:素敵な発見確かに – sjsam
Linuxは[inotify](http: /man7.org/linux/man-pages/man7/inotify.7.html)システムはこの種のものを呼び出しますが、シェルスクリプトから簡単に到達することはできません.... – gilez