ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- ksh 組み込み関数によるシェル組み込みの追加、削除、または表示
builtin [-ds] [-f lib] [pathname ...]
ksh builtin コマンドは、現在のシェル環境内で組み込みコマンドを追加、削除、または表示します。組み込みコマンドは現在のシェルプロセス内で実行されるため、現在のシェルに副作用を引き起こす場合があります。ほとんどのシステムでは、組み込みコマンドの起動時間は、個別のプロセスを作成するコマンドの 10 分の 1 から 100 分の 1 未満になります。
指定した pathname ごとに、パス名のベース名に基づいて組み込み名が決定されます。ベース名ごとに、シェルは、組み込み名の先頭に b_ が付加された C レベルの関数を現在のシェル内で検索します。pathname にスラッシュ (/) が含まれる場合、組み込みコマンドは pathname にバインドされています。パス名にバインドされた組み込みコマンドが実行されるのは、パス検索時に見つかった最初の実行可能ファイルが pathname である場合だけです。それ以外の場合、組み込みコマンドはパス検索を実行する前に見つかります。
pathname が指定されていない場合、builtin は現在の組み込みコマンドの一覧、または -s オプションが指定されているときには特殊な組み込みコマンドだけを標準出力に表示します。 パス名にバインドされた組み込みコマンドのフルパス名が表示されます。
組み込みコマンドを含むライブラリを指定するには、-f オプションを使用します。ライブラリに lib_init() という名前の関数が含まれる場合、ライブラリの読み込み時にこの関数が引数 0 を付けて呼び出されます。lib_init() 関数を使用して組み込みコマンドを読み込むには、適切な C レベル関数を呼び出します。この場合、C レベル関数の名前に制限はありません。
C レベル関数は、3 つの引数を付けて呼び出されます。最初の 2 つの引数は main() と同じで、3 番目の引数はポインタです。
制限付きシェルから ksh builtin コマンドを呼び出すことはできません。
次のオプションがサポートされています。
指定した各組み込みコマンドを削除します。特殊な組み込みコマンドは削除できません。
動的リンクの存在するシステムでは、組み込みコマンドの読み込みおよび検索は共有ライブラリ lib 内で行われます。
ライブラリの検索は、$PATH およびシステム依存ライブラリディレクトリ内で行われます。システム依存共有ライブラリの接頭辞または接尾辞は省略できます。ライブラリが読み込まれると、そのシンボルを現在および後続の builtin の呼び出しで使用できるようになります。複数のライブラリを指定するには、builtin を別個に呼び出します。ライブラリは、指定された順序とは逆の順序で検索されます。
特殊な組み込みコマンドだけを表示します。
次のオペランドがサポートされています。
pathname を指定します。パス名のベース名に基づいて組み込み名が決まります。
次の終了値が返されます。
正常終了。
エラーが発生しました。
例 1 builtin コマンドを読み込む
次の例では、builtin コマンド mycmd をライブラリ libfoo.so から読み込みます。
example% builtin -f foo mycmd
David Korn、dgk@research.att.com
属性についての詳細は、attributes(5) を参照してください。
|