xargsに空文字列が渡ったときのMacとLinuxでの挙動の違い
今流行りのpecoを使ったシェルコマンドを書いているときに、 xargsが空文字列を受け取ったときの挙動がMacとScientific Linux(以降SL)で違って戸惑った。
echo | xargs echo "hoge"
としたときにMacは何もエコーされないのに対し、SLだとhogeがエコーされる。
SLでは-r
オプションをつけることで、空文字列が渡ってきたときに無視することは出来るが、Macではエラーになってしまう。
http://linuxjm.sourceforge.jp/html/GNU_findutils/man1/xargs.1.html によれば、rオプションはGNUの拡張らしい。