ユーザー定義関数
通常、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
実行可能ファイルにリンクされるライブラリにコンパイルされます。定義を実行可能ファイルに組み込むと、外部定義をロードするのに比べて時間が節約されます。これらの関数の定義(.def
Cソースに解析されるソースファイルに保持)は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?)