stdinが空の場合、コマンドの実行

stdinが空の場合、コマンドの実行

xargs --no-run-if-empty標準入力が空の場合にのみ実行されるように、反対のタスクを実行したいと思います。

使用例:

ip a | fgrep "inet " | grep -ve " tun" -e " lo"
# pipe it into something and echo localhost if empty

ベストアンサー1

この場合、grep何も見つからない場合(出力なし)、エラーコードが返されます。したがって、標準出力を見る必要はありません。代わりにエラーコードを見ることができます。||これが完了し、前のコマンドが失敗した場合にのみ、次のコマンドが実行されます。

ip a | fgrep "inet " | grep -ve " tun" -e " lo" || echo localhost

おすすめ記事