xargs で標準入力がない場合は何もしない

F本さんに

オハヨウゴザイマス

コマンド結果 | xargsで、

コマンド結果がない場合、xargsにつながないようにするのって

どうするんでしたっけ?

と聞かれたので調べてみた。

-r 標準入力に空白しか含まれていない場合は、指定したコマンドを実行しない。 通常では、入力が全くない場合でも、コマンドが一回は実行されるのだ。 このオプションは GNU の拡張である。

Man page of XARGS

-r オプションでできるみたいなので試してみた。

$ echo|xargs echo foo
foo
$ echo|xargs -r echo foo

できますた。


追記:

GNU xargs使うときは -0r デフォですね。OSXのだと -r ないけど。。。

Kazuhiro YOSHIKAWA on Twitter: "GNU xargs使うときは -0r デフォですね。OSXのだと -r ないけど。。。"

r は知りませんですた。すんまそん。