Funções definidas pelo usuário
Normalmente, as funções bash são permanentemente armazenadas em um bash
script de inicialização.
- Scripts de inicialização de todo o sistema:
/etc/profile
para shells de login e /etc/bashrc
para shells interativos.
- O usuário define os scripts de inicialização:
~/.bash_profile
para shells de login e ~/.bashrc
para shells interativos.
- Mais informações sobre shells interativos / de login podem ser encontradas na
man
página bash da seção INVOCATION.
As funções de shell definidas pelo usuário são carregadas dinamicamente em um hash (ou tabela de consulta) quando o bash é iniciado. No arquivo de origem do bash, variable.c
a definição da tabela é:
/* The list of shell functions that the user has created, or that came from
the environment. */
HASH_TABLE *shell_functions = (HASH_TABLE *)NULL;
Funções definidas pelo usuário podem ser listadas com o declare
comando bash , outras shells ainda usam typeset
. No bash declare
, substituiu o typeset
comando.
declare -f
As funções existem na memória pelo tempo de vida do shell bash.
Funções definidas (incorporadas) da Shell
Estas são funções comuns, tais como echo
, printf
, cd
e :
. Eles são compilados em uma biblioteca que está vinculada ao bash
executável. Construir as definições no executável economiza tempo comparado ao carregamento de uma definição externa. As definições para essas funções (mantidas nos .def
arquivos de origem que são analisados em código-fonte C) são mantidas no builtins
diretório da origem do bash.
Um útil à parte: para informações sobre o uso de um comando interno do shell help <command>
. por exemplo
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
. Dê uma olhada na página man do seu shell (zsh?)