Пользовательские функции
Обычно функции 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