Kullanıcı tanımlı işlevler
Genellikle bash işlevleri bir bashbaşlatma komut dosyasında kalıcı olarak depolanır .
- Sistem çapında başlatma komut dosyaları:
/etc/profilegiriş kabukları ve /etc/bashrcetkileşimli kabuklar için.
- Kullanıcı başlangıç komut dosyalarını tanımlar:
~/.bash_profilegiriş kabukları ve ~/.bashrcetkileşimli kabuklar için.
- İnteraktif / giriş mermileri hakkında daha fazla bilgiyi
manİNOVOCATION bölümündeki bash sayfasında bulabilirsiniz.
Kullanıcı tanımlı kabuk işlevleri, bash başladığında bir karma (veya arama tablosu) içine dinamik olarak yüklenir. Bash kaynak dosyasından variable.ctablonun tanımı:
/* The list of shell functions that the user has created, or that came from
the environment. */
HASH_TABLE *shell_functions = (HASH_TABLE *)NULL;
Kullanıcı tanımlı işlevler bash declarekomutuyla listelenebilir , diğer kabuklar hala kullanır typeset. Bash declaresuperceded etti typesetkomutu.
declare -f
Fonksiyonlar bash kabuğunun ömrü boyunca hafızada bulunur.
Kabuk tanımlı (yerleşik) işlevler
Bunlar gibi yaygın işlevleri vardır echo, printf, cdve :. bashYürütülebilir dosyaya bağlı bir kitaplığa derlenirler . Tanımların yürütülebilir dosyaya oluşturulması, harici bir tanım yüklemeye kıyasla zaman kazandırır. Bu işlevlerin tanımları ( .defC kaynağına ayrıştırılan kaynak dosyalarda tutulur) builtinsbash kaynağı dizininde tutulur .
Yararlı bir kenara: kabuk yerleşik komut kullanımı hakkında bilgi için help <command>. Örneğin
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. Kabuğunuz için adam sayfasına bir göz atın (zsh?)