[Bash] 外部プログラムが正常終了以外なら標準エラーに出力するサンプル

サンプルコード

#!/bin/sh

cd `dirname $0`

LOG=`./run_update.sh "$@"`

if [ $? != 0 ]; then
  echo "failed: run_update $@" > /dev/stderr
  echo "$LOG" > /dev/stderr
fi

解説

バッククォートを使ってコマンドの実行結果(標準出力)をLOG変数に格納しています。
終了ステータスが0以外なら、エラーメッセージとしてstderrに出力しています。

最後のechoでは、改行を出力する為に変数を””で括っています。

免責事項

このブログは個人的なメモを兼ねたものです。

このブログを参考にした結果起こりうる如何なる事態に対しても、当方では責任を負いかねます。

予めご了承ください。