Funções definidas pelo usuário
Normalmente, as funções bash são permanentemente armazenadas em um script de inicialização bash .
- Scripts de inicialização em todo o sistema:
/etc/profilepara os cascos de login e/etc/bashrcpara os cascos interativos. - O usuário define os scripts de inicialização:
~/.bash_profilepara os shells de login e~/.bashrcpara os shells interativos. - Mais informações sobre shells interativos / de login podem ser encontradas na página bash
manna seção INVOCATION.
As funções shell definidas pelo usuário são carregadas dinamicamente em um hash (ou tabela de consulta) quando o bash é iniciado. A partir do 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 comando bash declare , outras camadas ainda usam typeset . No bash declare substituiu o comando typeset .
declare -f
As funções existem na memória pelo tempo de vida do shell bash.
Funções definidas (incorporadas) da Shell
Essas são funções comuns, como echo , printf , cd e : . Eles são compilados em uma biblioteca que está vinculada ao executável bash . 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 em .def arquivos de origem que são analisados em código-fonte C) são mantidas no diretório builtins da origem do bash.
Um lado útil: para obter informações sobre um comando interno do shell, use help <command> .
por exemplo.
help # list all builtins
help declare # info and options for declare
help -m declare # gives man style information for declare