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
IEのproxy.pac@Windows 7

IE11 から、どうもローカルにあるProxy.pacが読み込まれてないように思 …

no image
Galaxy S + PdaNet でBluetoothテザリング

※本記事の方法でいかなる損害が発生したとしても、責任は負いません。 Galaxy …

no image
mosh(クライアント)のインストール@cygwin

mosh (mobile shell) は、NWが不安定で接続が切れたり、IP …

no image
RDO使ってOpenStack Pikeインストール@CentOS7

RDO を使ってOpenStack Pikeをallinoneでインストールした …

no image
Windows 10のインストールイメージ(ISO)をダウンロード

Windows 10 のインストールメディア(ISO)のダウンロードツールが公開 …

no image
bashで配列のエクスポートができない@bash 3.2

bashにおいて、サブシェル(呼び出し先の別のシェル)内で呼び出し元の変数を参照 …

no image
JSPのJSTLとJSFの混在 – Unified EL(Expression Language)

JSFだけでJSPを書いていると、JSPのタグも使いたくなることがあります。今回 …

no image
POP3 + Maildir形式@Debian Etch

メールの保存形式をmboxからMaildirに変更したところ、qpopperがM …

no image
OpenStack LibertyをRDOを使ってインストール on CentOS7(KVM)

ホストOS(CentOS7)に直接OpenStackを入れると、失敗した時が面倒 …

no image
Fedora 17を19にアップグレードする

Fedora 17 のサポートが気づいたら終わっていたので、最新の19にアップグ …