8.1.2 UNIX互換コマンドの記述規則
スクリプト形式を除くUNIX互換コマンドには,次の記述規則があります。
-
オプションは,ショートオプションとロングオプションに分類されます。
-
連続する2個のハイフン(-)だけを指定すると,オプションの指定の終わりを示します。連続する2個のハイフン(-)以降に指定した文字列(オプションの指定も含む)は,すべてオペランドとして処理されます。
ショートオプション,ロングオプション,およびコマンドごとの記述規則を次に説明します。
(1) ショートオプションの指定形式
ショートオプションは,1個のハイフン(-)の後ろに規定の文字が1つ続くオプションです。
ショートオプションの指定形式を次に示します。オプション値を省略できるかどうかは,オプションによって異なります。
-ショートオプション名[△0オプション値]
ショートオプションを指定する場合の規則を次に示します。
-
オプション値のないオプション名は連続して指定できます(例:「-a -b -c」と「-abc」は同じです)。その場合,最後のオプションにはオプション値を指定できます(例:「-abc xyz」の「xyz」は,オプション-cの値となります)。
-
オプションによっては,オプション値の前にスペースを指定できません。このオプションでスペースを指定すると,オプション値の部分がオペランドと見なされます。
この章のコマンド説明の「形式」で,オプション値の前にスペースがないオプションは,スペースを指定できないことを示します。
(2) ロングオプションの指定形式
ロングオプションは,連続する2個のハイフン(-)の後ろに規定の文字列が続くオプションです。
ロングオプションの指定形式を次に示します。オプション値を省略できるかどうかはオプションによって異なります。
--ロングオプション名[=オプション値]
オプション値のあるオプションは次の形式でも指定できます。ただし,オプション値を省略できるオプションの場合は,ロングオプション名とオプション値の区切りは=(イコール)でなければなりません。=(イコール)でなくスペースを指定すると,オプション値の部分がオペランドと見なされます。
--ロングオプション名△1オプション値
ロングオプション名とオプション値は短縮して指定できません。例えば,cutコマンドの--charactersオプションを「--char リスト」と指定したり,lsコマンドの--formatオプションで表示形式longを「--format=l」と指定したりすると,エラーになります。
- 注意事項
-
ショートオプションに付随するロングオプションがある場合,このマニュアルではコマンド説明の「引数」の説明個所以外はショートオプションだけを記載しています。なお,付随するショートオプションがない場合はロングオプションを記述しています。コマンド説明の「形式」でのロングオプション名の記述位置は,他オプションとの関連がない場合は,すべてのショートオプション名の後ろに記述しています。
例えば,diffコマンドの-yオプションに付随するロングオプション「--side-by-side」は,コマンド説明の「形式」には記述していません。一方,ロングオプション「--suppress-common-lines」にはショートオプションが存在しないため,「形式」に記述しています。
(3) 各コマンドの注意事項
-
cut,date,diff,ls,expand,statコマンドは,オプションとオペランドの指定順序は任意です。オペランドの後ろにオプションを指定しても,そのオプションはオプションとして処理されます。
次のどちらかの環境変数を設定した場合,オペランドはコマンドラインにすべてのオプションを指定したあとに指定する必要があります。オペランドの後ろにオプションを指定しても,オペランドと見なされます。これらの環境変数については,「2.5 環境変数を設定する」を参照してください。
-
環境変数POSIXLY_CORRECT
-
環境変数ADSH_CMD_ARGORDER=seq
なお,環境変数POSIXLY_CORRECTはJP1/Advanced Shellのジョブ定義スクリプト内には定義できません。
-
-
awk,find,getoptコマンドでオプションとオペランドを指定する場合,すべてのオプションを指定したあとにオペランドを指定する必要があります。
-
次のコマンドでオプションとオペランドを指定する場合,Linuxではオプションとオペランドの指定順序は任意ですが,AIX,HP-UX,Solaris,Windowsでは,オプションを指定したあとにオペランドを指定する必要があります。
cat,cmp,cp,egrep,grep,head,mkdir,mv,paste,rm,sed,sort,split,tail,touch,uniq,wc,which
なお,Linuxで環境変数POSIXLY_CORRECTを設定することで,AIX,HP-UX,Solaris,Windowsと同じ動作にすることができます。
なお,環境変数POSIXLY_CORRECTはJP1/Advanced Shellのジョブ定義スクリプト内には定義できません。環境変数POSIXLY_CORRECTについては,「2.5 環境変数を設定する」を参照してください。