プログラムの出力に特定の単語が含まれている場合は、操作を実行するようにシェルスクリプトに指示します。

プログラムの出力に特定の単語が含まれている場合は、操作を実行するようにシェルスクリプトに指示します。

Bashでコマンドを実行し、結果に単語が含まれていることを確認し、単語が含まれている場合は、いくつかのタスクを実行するプログラムを作成する必要があります。

例:プリンタがオンラインであることを確認する必要があります。

lpstat -p [printer name]

結果にこの単語が含まれている場合は、inactiveスクリプトから私に電子メールを送信する必要があります。

プログラム出力で特定の単語を確認する方法は?

答え1

これが強い者の任務だgrep

lpstat -p myprinter | grep inactive

の出力をlpstatの入力に連結しgrep、その文字列を含む行を印刷します。非アクティブ

以下を含む行を印刷します。言葉 非アクティブ(つまり、非アクティブスペース、カンマなどで囲まれています)オプションを追加できます。

lpstat -p myprinter | grep -w inactive

しかし、テストを実行したいと思います。grep単語が見つかるたびに「成功」​​終了値(実際にはゼロ)を生成することに注意してください。これはテストに使用できます。また、コマンドの出力には興味がなく、grep成功状態にのみ興味があります。だからgrep静かにし、それに対するテストを構築してみましょう。

if lpstat -p myprinter | grep -q -w inactive
then
    mail -s "printer is inactive" othin
fi

読み取りの課題は次のとおりです。https://www.man7.org/linux/man-pages/man1/grep.1.html

関連情報