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