5.5.1 JP1/Advanced Shellが設定するシェル変数
JP1/Advanced Shellが設定するシェル変数を次の表に示します。これらのシェル変数に対して,値の設定,属性の変更,設定の解除はしないでください。
シェル変数名 |
設定される値 |
---|---|
# |
現在のジョブ定義スクリプトまたは関数に渡された引数の数が設定されます。 |
- |
シェルに設定されているシェルオプションの省略形の文字列が設定されます。 ただし,省略形の文字がないシェルオプションは,この変数には設定されません。 |
? |
直前に実行したコマンドの終了コードが設定されます。 |
$ |
シェルのプロセスIDとして,次に示すプログラムのプロセス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 ジョブの終了コードとする。