(bash)シェルをバックグラウンドで実行できますか?

(bash)シェルをバックグラウンドで実行できますか?

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 ***

おすすめ記事