私はbashスクリプトを書いています。特定のコマンドとgrepを実行します。
pfiles $1 2> /dev/null | grep name # $1 Process Id
応答は次のようになります。
sockname: AF_INET6 ::ffff:10.10.50.28 port: 22
peername: AF_INET6 ::ffff:10.16.6.150 port: 12295
応答は行なし、1行、または2行です。
grepが行を返さない場合(grep戻りコード1)、スクリプトを中止します。行が1つある場合は、A()またはB()を呼び出します(行が1つ以上の場合)。出力が1〜2行の場合、grepの戻りコードは0です。
grepには戻り値(0または1)と出力があります。
どうすれば両方をキャッチできますか?私が次のことをするなら:
OUTPUT=$(pfiles $1 2> /dev/null | grep peername)
その後、OUTPUT変数は出力(文字列)を持ちます。また、grepを実行するためのブール値も必要です。
ベストアンサー1
あなたはそれを使用することができます
output=$(grep -c 'name' inputfile)
変数にはoutput
数値0
または1
が含まれます2
。その後、if
ステートメントを使用してさまざまな操作を実行できます。