次の例echoでは、パイプライン内の前のコマンドの終了コードに関係なく、ステートメントが実行されます。
asemenov@cpp-01-ubuntu:~$
asemenov@cpp-01-ubuntu:~$ false|echo 123
123
asemenov@cpp-01-ubuntu:~$ true|echo 123
123
asemenov@cpp-01-ubuntu:~$
前のコマンドのゼロecho終了コードでのみコマンドを実行したい、つまりこの動作を実現したい:
asemenov@cpp-01-ubuntu:~$ false|echo 123
asemenov@cpp-01-ubuntu:~$
bashで可能ですか?
より実用的な例を次に示します。
asemenov@cpp-01-ubuntu:~$ find SomeNotExistingDir|xargs ls -1
find: `SomeNotExistingDir': No such file or directory
..
..
files list from my current directory
..
..
asemenov@cpp-01-ubuntu:~$
xargs ls -1失敗した場合に実行する理由はありませfindん。