expect
起動したら、端末を監視し、一致するものが見つかるたびにコマンドを実行するスクリプトを作成しようとします。
これは可能ですかexpect
?それでは、expect_background
使用するのが正しいのでしょうか?
編集:確かに言えば、expect
入力ではなく端末から出力しようとしています。
ベストアンサー1
はい、bashでは簡単にこれを行うことができます。標準出力をtee
パターンを表示するときに操作を実行できるプロセスにリダイレクトします。tee
標準出力に標準出力を追加するので良いです。
exec 1> >(tee >(awk '/foobar/ {print "*** DING DING ***"}'))
tee
これは、標準入力をstdoutとプロセス置換2(何かを実行するawkスクリプト)にコピーするプロセス置換1にstdoutを送信します。コードまたはスクリプトへのパスを内部プロセス置換に入れることができます。
展示する
$ echo this is foobar stuff
this is foobar stuff
$ exec 1> >(tee >(awk '/foobar/ {print "*** DING DING ***"}'))
$ date
Thu Mar 10 16:37:14 EST 2016
$ pwd
/home/jackman
$ echo this is foobar stuff
this is foobar stuff
*** DING DING ***