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/profile
para os cascos de login e/etc/bashrc
para os cascos interativos. - O usuário define os scripts de inicialização:
~/.bash_profile
para os shells de login e~/.bashrc
para os shells interativos. - Mais informações sobre shells interativos / de login podem ser encontradas na página bash
man
na 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