ユーザー定義関数
通常、bash関数はbash起動スクリプトに永続的に保存されます。
- システム全体の起動スクリプト:
/etc/profileログインシェルおよび/etc/bashrc対話型シェル用。
- ユーザー定義の起動スクリプト:
~/.bash_profileログインシェルおよび~/.bashrc対話型シェル用。
- 対話型/ログインシェルの詳細について
manは、「呼び出し」セクションのbash ページを参照してください。
ユーザー定義のシェル関数は、bashの起動時にハッシュ(またはルックアップテーブル)に動的にロードされます。bashソースファイルから、variable.cテーブルの定義は次のとおりです。
/* The list of shell functions that the user has created, or that came from
the environment. */
HASH_TABLE *shell_functions = (HASH_TABLE *)NULL;
ユーザー定義関数はbash declareコマンドでリストできますが、他のシェルはまだ使用しますtypeset。bash declareではtypesetコマンドに取って代わりました。
declare -f
関数は、bashシェルの存続期間中、メモリに存在します。
シェル定義(組み込み)関数
これらは、次のような一般的な機能でありecho、printf、cdと:。これらは、bash実行可能ファイルにリンクされるライブラリにコンパイルされます。定義を実行可能ファイルに組み込むと、外部定義をロードするのに比べて時間が節約されます。これらの関数の定義(.defCソースに解析されるソースファイルに保持)はbuiltins、bashソースのディレクトリに保持されます。
便利なこと:シェルの組み込みコマンドの使用については、を使用してくださいhelp <command>。例えば
help # list all builtins
help declare # info and options for declare
help -m declare # gives man style information for declare
cd is a shell builtin。シェルのマニュアルページをご覧ください(zsh?)