5.6.1 setコマンドで設定できるシェルオプション
setコマンドで設定できるシェルオプションを次の表に示します。setコマンドについては「9.3 シェル標準コマンド」の「setコマンド(シェルオプションを設定する,配列を作成する,または変数の値を表示する)」を参照してください。
名称 |
設定方法 |
シェルオプションを設定した場合の意味 |
デフォルト値 |
---|---|---|---|
allexport※1 |
-a -o allexport |
変数をすべて自動的にエクスポートします。 |
無効 |
braceexpand |
-o braceexpand |
ブレース展開を有効にします。ブレース展開とは,ブレース({ })で囲んだ部分を複数の単語にする展開のことです。ブレースで囲まれた1つ以上のコンマで区切られた文字をブレースの前後の文字と結合し,1つの変数として展開します。例えば,a{1,2,3}はa1,a2,a3に展開されます。 |
有効 |
bgnice※2 |
-o bgnice |
すべてのバックグラウンドジョブの優先順位を下げて実行します。 |
無効 |
noglob |
-f -o noglob |
ファイル名置換を禁止します。ファイル名置換については,「置換」を参照してください。 また,ブレース展開を無効にします。ブレース展開を有効にする場合は,noglobシェルオプションを無効にしてください。シェルオプションを無効にする方法については,「シェル標準コマンド」の「setコマンド(シェルオプションを設定する,配列を作成する,または変数の値を表示する)」を参照してください。 |
無効 |
nounset |
-u -o nounset |
置換対象の変数に値が設定されていない場合,ジョブはエラー終了し,シェルが終了します。 |
無効 |
verbose※3 |
-v -o verbose |
ジョブ定義スクリプトから読み込んだ内容をコマンド実行前に標準エラー出力に出力します。 |
無効 |
xtrace |
-x -o xtrace |
シェル変数PS4の値を行の先頭に配置した上で,実行されたコマンドとその引数を標準エラー出力に出力します。ただし,[[ ]]コマンド,スクリプト拡張コマンドおよびその引数は出力しません。また,(( ))による算術演算はletコマンドに置き換えられて出力されます。 |
無効 |
- 注※1
Windows版では,環境設定パラメーターでVAR_ENV_NAME_LOWERCASE DISABLEを指定した場合は,変数名に英小文字を含む変数をエクスポートできません。そのため,allexportシェルオプションを有効にしたあとに,英小文字を含むシェル変数を定義または値を更新すると,エラーメッセージを出力してバッチジョブを終了します。
- 注※2
-
Windows版では,adshjavaコマンドの優先度は変更されません。また,COMPATIBLE_CMD_EXECパラメーターにV10を指定した場合,UAPなどの外部コマンドの優先度も変更されません。
Windows版では,親プロセスの優先度が「通常」である場合,バックグラウンドジョブの優先度を「通常以下」にします。親プロセスの優先度が「通常」より高い場合,バックグラウンドジョブの優先度は「通常」となります。親プロセスの優先度が「通常」より低い場合,バックグラウンドジョブの優先度は親プロセスと同様になります。
- 注※3
verboseオプションを指定すると,ジョブステップを定義するコマンドの入力行出力先が変わります。
#-adsh_step_startコマンドの場合
実行した時点でジョブのSTDERRからジョブステップのSTDERRに切り替わるため,#-adsh_step_start自身の入力行出力はジョブのSTDERRに出力されます。
#-adsh_step_endコマンドの場合
実行した時点でジョブステップのSTDERRからジョブのSTDERRに切り替わるため,#-adsh_step_end自身の入力行出力はジョブステップのSTDERRに出力されます。
例を次に示します。
- ジョブ定義スクリプト
set -o verbose ←またはset -v #-adsh_step_start S1 cmdA #-adsh_step_error cmdB #-adsh_step_end cmdC
- ジョブのSTDERR
#-adsh_step_start S1 cmdC :
- ジョブステップS1のSTDERR
cmdA #-adsh_step_error cmdB #-adsh_step_end
- 注意事項
実行時パラメーターやJP1/Advanced Shellエディタでデバッグ実行をする場合,コマンドの実行結果は標準エラー出力へ出力されます。setコマンドでverboseオプションを指定すると,コマンドの実行結果のメッセージは次の行の内容を出力したあとで出力されます。例を次に示します。
- ジョブ定義スクリプト
001: set -o verbose 002: echo "Line 002" 003: echo "Line 003"
- デバッグ実行時の出力例を次に示します。
KNAX7018-I ブレークポイント "1": ファイル名="test.ash" 行番号=1 KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。 1: set -o verbose 現在位置: set (adshdb) step ←ジョブ定義スクリプトの001行目のsetコマンドを実行 echo "Line 002" ←ジョブ定義スクリプトの002行目を読み込んだ内容を出力 KNAX6112-I コマンド(set, 行番号=1)が正常終了しました。rc=0 E-Time=0.000s C-Time=0.000s ←ジョブ定義スクリプトの001行目のsetコマンドの結果出力 KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。 2: echo "Line 002" 現在位置: echo (adshdb) step Line 002 :