構成スクリプトを記述する言語は、一連のコマンドで構成されており、各コマンドはそれぞれ個別に翻訳されます。次の 5 つのキーワードが定義されています。assign、push、 pop、runwait、および run です。コメント文字は # です。空白行は無視されます。スクリプトの各行は 1024 文字を超えることはできません。
assign キーワードは環境変数の定義に使用します。
assign variable=value
variable は環境変数名で、value は環境変数に割り当てられる値です。value は文字列定数でなければなりません。パラメータ置換は使用できません。value は引用符で囲むことができます。 引用符で囲むときの規則は、シェルで環境変数を定義するときの規則と同じです。新たな環境変数を割り当てるための空間が足りない場合、指定構文に誤りがあるときは assign コマンドでエラーが起こります。
push キーワードは fd が指定するストリームへ STREAMS モジュールをプッシュするために使用します。 doconfig(3NSL) マニュアルページを参照してください。
push module1[, module2, module3, ...]
module1 は最初にプッシュされるモジュール名、module2 は 次にプッシュされるモジュール名です (module3 以降も同様)。指定したどれかのモジュールがプッシュできなかったとき、このコマンドはエラーとなります。その場合、同じ行で指定している残りのモジュールは無視され、既にプッシュされたモジュールはポップされます。
pop キーワードは指定したストリームから STREAMS モジュールをポップするために使用します。
pop [module]
引数なしで pop コマンドを実行すると、ストリームの一番上のモジュールがポップされます。引数を指定すると、モジュールは、指定したモジュールがストリームの一番上にくるまで、モジュールが 1 つずつポップされます。指定したモジュールがストリームにない場合は、ストリームはもとの状態のままで、コマンドはエラー終了します。モジュール名の代わりに特殊キーワード ALL を指定すると、ストリームから全モジュールがポップされます。ただし、一番上のドライバより上のモジュールだけが対象になることに注意してください。
runwait キーワードは、コマンドを実行してその終了を待ちます。
runwait command
command には、実行するコマンドのパス名を指定します。command は /bin/sh -c を付けて実行されます。シェルスクリプトもこのようにして構成スクリプトから実行できます。command が見つからないか、実行できなかったとき、または command は存在してもステータスが 0 以外のときは、runwait コマンドは実行エラーとなります。
run キーワードは、runwait と同じですが、command の終了を待たない点が異なります。
run command
command には、実行するコマンドのパス名を指定します。run コマンドがエラー終了するのは、command を実行する子プロセスを作成できなかったときだけです。
構文上は区別がつきませんが、run と runwait で実行されるコマンドのいくつかはインタプリタの組み込みコマンドです。インタプリタの組み込みコマンドが使用されるのは、プロセスのコンテキストの中でプロセスの状態を変える必要があるときです。doconfig() の組み込みコマンドは、シェルの特殊コマンドやこれらのコマンドと同様、実行のための別プロセスを生成しません。sh(1) のマニュアルページを参照してください。組み込みコマンドの初期セットを次に示します。
cd ulimit umask