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。