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