Функції, визначені користувачем
Зазвичай функції 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. У баші 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?)