Пользовательские функции
Обычно функции bash постоянно хранятся в скрипте запуска bash .
- Общесистемные сценарии запуска:
/etc/profile для оболочек входа в систему и /etc/bashrc для интерактивных оболочек.
- Пользователь определяет сценарии запуска:
~/.bash_profile для оболочек входа в систему и ~/.bashrc для интерактивных оболочек.
- Более подробная информацию о интерактивных / оболочках входа в системе можно найти в справочной странице Баша в разделе Призыва.
Пользовательские функции оболочки загружаются динамически в хеш (или таблицу поиска) при запуске 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