回答:
試してください:
service --status-all |& grep network
コマンドラインアプリケーションは、標準出力(stdout)および標準エラー(stderr)として知られる2つのテキストストリームに出力できます。デフォルトでは、端末は両方の出力をまったく同じように表示します。
stdoutには番号1が与えられ、stderrには番号2が与えられます。デフォルトでは、リダイレクト演算子は、など>
で|
あり<
、stdoutにのみ適用されます。
|&
stdoutとstderrの両方を右の標準入力(stdin)ストリームのプロセスにパイプgrep
します。これにより、期待どおりに動作します。
service --status-all
ここでstderrに出力する理由はわかりませんが、一般に、stdoutが無音の場合でもエラーが表示されるため、独立したstderrストリームを持つことは非常に便利です。
標準エラーストリーム(2
)を標準出力(1
)にリダイレクトする必要があります。
service --status-all 2>&1 | grep network
オペレーター>
は通常、ファイルにリダイレクトします(例:)2>/tmp/file
。descriptorを使用して他のストリームにリダイレクトするには、その前に&
(文字間にスペースがないことに注意してください)必要があります。