9.1.2 スクリプト拡張コマンドの記述形式
スクリプト拡張コマンドの記述形式を次に示します。
△0コマンド名△1属性値[…△1属性値][△1-属性名△1属性値[…△1-属性名△1属性値]] |
- スクリプト拡張コマンドのコマンド名は,必ず「#-adsh_」で開始します。
- コマンド名のあとに,「属性値」のリストと,「-属性名 属性値」のリストを連続して記載します。
- 「属性値」のリストは順序に意味があるため,省略できません。「-属性名 属性値」のリストは順不同であり,省略できます。
- スクリプト拡張コマンドと同一のコメントは記述できません。スクリプト拡張コマンドをコメントにする場合は,先頭にもう1つ「#」を書いてください。
- すべての記述でダブルクォーテーション「"」,シングルクォーテーション「'」,エスケープ文字「¥」が使用できます。
ただし,スクリプト拡張コマンドではダブルクォーテーションで囲まれた文字列中の「¥」は,直後の文字の種類に関係なくすべてエスケープ文字となります。ダブルクォーテーションで囲まれた文字列に「¥」を指定したい場合は,¥¥と記述してください。
- コマンド名,属性名および属性値(予約語の場合)は,すべて大文字と小文字を区別します。
- 属性値には環境変数名が指定でき,スクリプト起動前に設定していた値で置換できます。環境変数名を記述する場合,{ }で囲む必要があります。環境変数名は「9.1.2(2) 文字セットの定義」で示す<環境変数名>の形式で,255バイト以内で記述します。
- スクリプト拡張コマンドは各行の先頭に記述してください。また,コマンド名の後ろから改行コードまでに必ずスペースを指定します。スペース以外が存在すると構文解析エラーになります。
- コマンド区切り記号を指定して,同一行の2番目以降にスクリプト拡張コマンドを記述できません。記述すると構文解析エラーになります。
- 関数内にスクリプト拡張コマンドを記述できません。記述すると構文解析エラーになります。
- for文,while文,until文のブロック内および関数定義内に,スクリプト拡張コマンドを記述できません。記述すると,実行前に文法エラーになります。
- 「.」で呼び出す外部スクリプトの中に,スクリプト拡張コマンドを記述できません。記述するとコメントとして扱われます。
スクリプト拡張コマンドを複数行に分けて記述する場合は,2行目以降を次の形式で記述します。
- コマンド名および属性の区切り文字の個所だけ,継続行指定ができます。コマンド名,属性名および属性値の途中で継続行指定はできません。
- 継続行で文法エラーがある場合,エラーメッセージに表示される行番号は,そのスクリプト拡張コマンドの先頭行の行番号となります。
- <この項の構成>
- (1) 制限事項
- (2) 文字セットの定義
(1) 制限事項
- 継続する行を含めて,スクリプト拡張コマンドの1行は8,191バイト以下にしてください。
- 属性値を複数指定する場合はスペースまたはコンマで区切ります。コンマの間の値は省略できません。
(2) 文字セットの定義
属性値として使用できる文字セットの定義を次の表に示します。
表9-1 属性値として使用できる文字セットの定義
構文要素 | 指定できる文字の内容 | 対象 |
---|
<記号名称> | {<英字>|<数字>|@|#|_(アンダースコア)}+ | ジョブ名など |
<環境変数名> | {<英字>|_(アンダースコア)}{<英字>|_(アンダースコア)|<数字>}* | ファイル環境変数定義名など |
<パス名> | OSのファイルパス名規則に従った文字列です。 「¥」はメタキャラクタ(エスケープ文字)として扱うため,Windowsでは次のように記述してください。メタキャラクタについては,「5.1.5 メタキャラクタ」を参照してください。 指定例:'C:¥test'またはC:¥¥testなど | パス名 |
<任意文字列> | 任意の文字による文字列です。 次の範囲での利用を推奨します。 {<英字>|<数字>|@|#|_(アンダースコア)}+ | 環境変数値など |