Hitachi

JP1 Version 11 JP1/Advanced Shell 


5.5.1 JP1/Advanced Shellが設定するシェル変数

JP1/Advanced Shellが設定するシェル変数を次の表に示します。これらのシェル変数に対して,値の設定,属性の変更,設定の解除はしないでください。

表5‒33 JP1/Advanced Shellが設定するシェル変数

シェル変数名

設定される値

#

現在のジョブ定義スクリプトまたは関数に渡された引数の数が設定されます。

-

シェルに設定されているシェルオプションの省略形の文字列が設定されます。

ただし,省略形の文字がないシェルオプションは,この変数には設定されません。

?

直前に実行したコマンドの終了コードが設定されます。

$

シェルのプロセスIDとして,次に示すプログラムのプロセスIDが設定されます。

【Windows限定】

adshexecsub.exeまたはadshesub.exeのプロセスID

【UNIX限定】

adshexecのプロセスID

_

adshexecコマンド起動時に設定されている値が設定されます。値が設定されていない場合は,adshexecコマンド起動時のargv[0]の内容が設定されます。

また,子プロセスとして起動した外部コマンド,子孫ジョブの起動時には,argv[0]の内容が設定されます。

!

最後にバックグラウンドで実行したコマンドのプロセスIDが設定されます。

ADSH_DIR_BIN※1

JP1/Advanced Shellのプログラムフォルダ(bin)のパス名が設定されます。※2

ADSH_DIR_CMD※1

JP1/Advanced ShellのUNIX互換コマンドのフォルダ(cmd)のパス名が設定されます。※3

ADSH_DIR_PARTS_JA※1

JP1/Advanced Shellのスクリプト開発部品フォルダ(parts)配下の日本語フォルダ(ja)のパス名が設定されます。

ADSH_DIR_PARTS_EN※1

JP1/Advanced Shellのスクリプト開発部品フォルダ(parts)配下の英語フォルダ(en)のパス名が設定されます。

ADSH_RC_EXTERNAL【Windows限定】

最後に実行した外部コマンドの終了コードが設定されます。詳細は「5.5.4 外部コマンドの終了コードが設定されるシェル変数【Windows限定】」を参照してください。

ADSH_RC_STEPLAST※1

過去に実行した最終ジョブステップの終了コードが設定されます。

ジョブステップが1つも実行されていない場合は,シェル変数が未定義です。

ADSH_RC_STEPMAX※1

過去に実行した全ジョブステップの終了コードの最大値が設定されます。

ジョブステップが1つも実行されていない場合は,シェル変数が未定義です。

ADSH_RC_STEPMIN※1

過去に実行した全ジョブステップの終了コードの最小値が設定されます。

ジョブステップが1つも実行されていない場合は,シェル変数が未定義です。

ADSH_STEPRC_ジョブステップ名※1

ジョブステップ名」で示すジョブステップの終了コードが設定されます。「ジョブステップ名」で示すジョブステップが実行されていない場合は,シェル変数が未定義です。

重複するジョブステップ名が存在する場合,最後に実行されたジョブステップの終了コードが格納されます。

LINENO

実行中のジョブ定義スクリプトの現在行の行番号が設定されます。

OLDPWD

cdコマンドで設定された直前の作業ディレクトリが設定されます。

OPTARG

getoptsコマンドで処理された最後のオプション引数の値が設定されます。

OPTIND

getoptsコマンドで処理された最後のオプション引数のインデックスが設定されます。

PPID

Windowsの場合は0が設定されます。

UNIXの場合はシェルの親のプロセス番号が設定されます。

PWD

現在の作業ディレクトリが設定されます。

RANDOM

0から32767(=0x7FFF)までの整数の乱数が設定されます。

REPLY

引数を指定しないreadコマンドによって読み込まれた内容が設定されます。

SECONDS

シェルが起動してからの経過秒数が設定されます。

関数情報配列※1

adshexecコマンドで実行中の関数の情報が一次元配列で設定されます。次に示す配列があります。

  • 呼び出し関数名称配列

  • 関数呼び出し行番号配列

  • 関数定義スクリプトファイル名配列

関数情報配列については,「関数情報配列」を参照してください。

注※1

特別な意味を持つこれらのシェル変数を総称してシェル拡張変数と呼びます。

注※2

ジョブ定義スクリプトでadshfileコマンドを使用する場合の定義例を次に示します。

"${ADSH_DIR_BIN}adshfile" -s job -n keep -a del ${VAL01}
注※3

ジョブ定義スクリプトでexprコマンドを使用する場合の定義例を次に示します。

num=`"${ADSH_DIR_CMD}expr" $NUM - 1`

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

スクリプト制御文のifで条件判定し,先行ジョブステップの実行結果によって後続ジョブステップの実行を制御する場合
#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
#-adsh_step_start STEP01
    uap01
#-adsh_step_end
if [[ $ADSH_STEPRC_STEP01 -eq 0 ]]; then   ←STEP01が終了コード0の場合
    #-adsh_step_start STEP02               だけ,STEP02を実行
        uap02
    #-adsh_step_end
fi
ジョブ定義スクリプトをexitコマンドで終了するとき,ジョブステップ終了コードの最大値で終了する場合
#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
 
#-adsh_step_start STEP01
  uap01
#-adsh_step_end
 
#-adsh_step_start STEP02 -run always
  uap02
#-adsh_step_end
 
#-adsh_step_start STEP03 -run always
  exit $ADSH_RC_STEPMAX        ←ジョブステップ終了コードの最大値を,
#-adsh_step_end                  ジョブの終了コードとする。