Hitachi

JP1 Version 10 JP1/Advanced Shell


5.6.1 setコマンドで設定できるシェルオプション

setコマンドで設定できるシェルオプションを次の表に示します。setコマンドについては「9.3 シェル標準コマンド」の「setコマンド(シェルオプションを設定する,配列を作成する,または変数の値を表示する)」を参照してください。

表5‒34 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

ファイル名置換を禁止します。ファイル名置換については,「5.1.6(6) 置換」を参照してください。

また,ブレース展開を無効にします。ブレース展開を有効にする場合は,noglobシェルオプションを無効にしてください。シェルオプションを無効にする方法については,「9.3 シェル標準コマンド」の「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版ではサポートしていません。

注※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 Breakpoint "1": filename="test.ash" line=1
KNAX7032-I Stop in the script "test.ash".
1: set -o verbose
Current: set
(adshdb) step   ←ジョブ定義スクリプトの001行目のsetコマンドを実行
echo "Line 002"  ←ジョブ定義スクリプトの002行目を読み込んだ内容を出力
KNAX6112-I Command set(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s   ←ジョブ定義スクリプトの001行目のsetコマンドの結果出力
KNAX7032-I Stop in the script "test.ash".
2: echo "Line 002"
Current: echo
(adshdb) 
Line 002
        :