Funções definidas pelo usuário
Normalmente, as funções bash são permanentemente armazenadas em um bashscript de inicialização.
- Scripts de inicialização de todo o sistema:
/etc/profilepara shells de login e /etc/bashrcpara shells interativos.
- O usuário define os scripts de inicialização:
~/.bash_profilepara shells de login e ~/.bashrcpara shells interativos.
- Mais informações sobre shells interativos / de login podem ser encontradas na
manpá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.ca 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 declarecomando bash , outras shells ainda usam typeset. No bash declare, substituiu o typesetcomando.
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, cde :. Eles são compilados em uma biblioteca que está vinculada ao bashexecutá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 .defarquivos de origem que são analisados em código-fonte C) são mantidas no builtinsdiretó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?)