Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

パイプでつないだコマンドの戻り値を調べる@bash

      2011/10/08

シェルスクリプトで、実行したコマンドの戻り値を知る方法は有名ですよね。

以下のように、$? で知ることができます。
※false は つねに 1 を返すコマンドです。

# false; echo $?
1

しかし、パイプ “|” でつないだ場合、$? で知ることができるのは、最後のコマンドの結果だけです。

# true | true | false; echo $?
1

1番目や2番目の結果を知りたい場合どうすればよいかというと、PIPESTATUS とう配列をみてあげるとわかります。

例えば、上記のコマンド結果を以下のように表示してあげると、PIPESTATUS[0] には、最初のtrueの結果が、PIPESTATUS[1]には、2番目のtrueの結果が、PIPESTATUS[2]には3番目のfalseの結果がわかります。

# true | true | false; echo ${PIPESTATUS[0]}
0
# true | true | false; echo ${PIPESTATUS[1]}
0
# true | true | false; echo ${PIPESTATUS[2]}
1

 - IT技術, プログラミング

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
Firefox7のプチフリ対策

Firefox 7 にしてから、Firefoxが定期的にフリーズしてしまいます。 …

no image
Cygwin 1.7 の起動が遅い@ Windows 7 x64

PuttyやCygterm で cygwin を起動しているのですが、コンソール …

no image
シェルで逐一時間表示@bash

デバッグを目的に、 逐一コマンド実行時に時間を表示させたい場合があります。 $ …

no image
firefox7のアドレスバーにhttps://を表示させる

firefox7からアドレスバーのURLにhttps://が表示されなくなりまし …

no image
名前ベースのVirtualHost

今までapacheを名前ベース(NameVirtualHost)をエラーが出たま …

no image
USBハードディスクにWindows 7インストール

今あるPCのシステムを消したくなかったので、USBハードディスクにWindows …

no image
google analyticsのリアルタイム表示を使ってみた

google アナリティクスが、リアルタイム表示に対応したようです。 申し込めば …

Lenovo Trackpoint キーボードで、Fnキーの振る舞いを逆にする@Windows 10

Lenovo の Trackpointキーボード 0B47208を使っているので …

no image
chromeに独自のproxyを設定

Windows版のchromeのproxyの設定を開くと、システム(IE)のpr …

no image
vimで検索語をハイライトする@さくらインターネット

普通vimで検索すると、検索語がハイライトされるのですが、さくらインターネットに …