Hitachi

JP1 Version 11 JP1/Advanced Shell 


5.5.4 外部コマンドの終了コードが設定されるシェル変数【Windows限定】

JP1/Advanced Shellでは,ジョブコントローラが実行する外部コマンドの終了コードを,シェル変数ADSH_RC_EXTERNALに設定します。

〈この項の構成〉

(1) シェル変数ADSH_RC_EXTERNAL

JP1/Advanced Shellのジョブコントローラでは,外部コマンドの終了コードを0255とすることを推奨しています。0255の範囲外の終了コードでリターンするバッチファイルやプログラムを実行し,その実行結果を終了コードで判定する場合は,シェル変数ADSH_RC_EXTERNALで実行結果を取得してください。シェル変数ADSH_RC_EXTERNALの意味と有効範囲を次の表に示します。

表5‒36 シェル変数ADSH_RC_EXTERNALの意味と有効範囲

シェル変数名

意味

有効範囲

ADSH_RC_EXTERNAL

最後に実行した外部コマンドの終了コードが設定されます。次のコマンドをジョブ定義スクリプト内で実行すると,ジョブコントローラはシェル変数ADSH_RC_EXTERNALの値を更新します。

  • 外部コマンド

  • UNIX互換コマンド

  • シェル運用コマンド

  • 子孫ジョブ

また,上記以外のコマンドでも,別プロセスでコマンドを実行(パイプ,コマンド置換,|&&を使用)した場合は値が更新されます。初期値は0,属性は整数型,読み込み専用です。

-21474836482147483647

(2) 使用例

シェル変数ADSH_RC_EXTERNALの使用例を次に示します。

外部コマンドがリターンする0255の範囲以外の値を取得する場合
"D:\\bin\\uap01.exe"    ←終了コード800を返すUAP
echo $?                 ←標準出力に32が出力される
echo $ADSH_RC_EXTERNAL  ←標準出力に800が出力される

注※ 800=0x320。シェル変数?は外部コマンドがリターンする値の下位8ビットを終了コードとして扱います。

外部コマンドがリターンする値が512の時,ジョブを終了コード2で終了する場合
"D:\\bin\\uap02.exe"
if [ $ADSH_RC_EXTERNAL -eq 512 ]
then
  exit 2
fi

(3) 注意事項