ONC+ 開発ガイド

構成スクリプト言語

構成スクリプトを記述する言語は、一連のコマンドで構成されており、各コマンドはそれぞれ個別に翻訳されます。5 つのキーワード assignpushpoprunwaitrun が定義されています。コメント文字は # です。空白行は無視されます。スクリプトの各行は 1024 文字を超えてはいけません。

assign variable=value

assign コマンドは環境変数を定義するのに使用します。variable は環境変数名で、value は環境変数に割り当てられる値です。value は文字列定数でなければなりません。パラメータ置換は使用できません。value は引用符で囲むことができます。引用符で囲むときの規則は、シェルで環境変数を定義するときの規則と同じです。新たな環境変数を割り当てるための空間が足りない場合、指定構文に誤りがあるときは assign コマンドでエラーが起こります。

push module1[, 
 module2, module3, ...] 

push コマンドは、STREAMS モジュールを fd で指定されたストリームにプッシュします。doconfig(3N) マニュアルページを参照してください。module1 は最初にプッシュされるモジュール名、module2 は 次にプッシュされるモジュール名です。(module3 以下も同様)。指定したどれかのモジュールがプッシュできなかったとき、このコマンドはエラーとなります。その場合、同じ行で指定している残りのモジュールは無視され、既にプッシュされたモジュールはポップされます。

pop [module]

pop コマンドは、指定したストリームから STREAMS モジュールをポップするのに使用します。引数なしで pop コマンドを実行すると、ストリームの一番上のモジュールがポップされます。引数を指定して pop コマンドを実行すると、指定したモジュールがストリームの一番上に来るまで、モジュールが 1 つずつポップされます。指定したモジュールがストリームにない場合は、ストリームはもとの状態のままで、コマンドはエラー終了します。モジュール名の代わりに特殊キーワード ALL を指定すると、ストリームから全モジュールがポップされます。ただし、一番上のドライバより上のモジュールだけが対象になることに注意してください。

runwait command

runwait コマンドは、コマンドを実行してその終了を待ちます。command には、実行するコマンドのパス名を指定します。command/bin/sh -c を付けて実行されます。シェルスクリプトもこのようにして構成スクリプトから実行できます。指定した command が見つからないか実行できなかったとき、または、command は存在していてもステータスが 0 以外のときは、runwait コマンドがエラー終了します。

run command

run コマンドは runwait コマンドと同じですが、run コマンドでは command の終了を待たない点が違います。command には、実行するコマンドのパス名を指定します。run コマンドがエラー終了するのは、command を実行する子プロセスを作成できなかったときだけです。

構文上は区別がつきませんが、runrunwait で実行されるコマンドのいくつかはインタプリタの組み込みコマンドです。インタプリタの組み込みコマンドが使用されるのは、プロセスのコンテキストの中でプロセスの状態を変える必要があるときです。doconfig() の組み込みコマンドは、シェルの特殊コマンドと同様、実行するための別のプロセスを生成しません。sh(1) マニュアルページを参照してください。組み込みコマンドの初期セットを次に示します。

cd ulimit umask