Aqui está um procedimento essencial para declarar uma função permanente:
Abra o ~/.bashrc
arquivo em um editor de texto. Não importa qual editor de texto, desde que você saiba como usá-lo e desde que você abra o/home/<username>/.bashrc
No final do ~/.bashrc
declarar sua própria função, por exemplo:
find_dirs(){
find "$1" -type d
}
Salve e feche o arquivo.
O ~/.bashrc
arquivo é lido toda vez que você abre o shell interativo (que é a nova guia do terminal, ssh
efetua login ou abre o TTY1 ou outro console virtual). Isso não estará disponível nos arquivos de script, porque ~/.bashrc
não é lido para shells não interativos. Também não está disponível se você executar bash
com a --norc
opção
Se você deseja que a função esteja disponível imediatamente na guia atualmente aberta, use o source ~/.bashrc
comando
Funções recebem argumentos como comandos regulares. Por exemplo, $1
através de $9
indica os parâmetros posicionais quando você chama uma função. No exemplo acima, find_dirs
pega apenas um parâmetro posicional e seria chamado como find_dirs /etc
. Você também pode usar $@
para se referir a todos os parâmetros posicionais. As funções também aceitam o redirecionamento. Você pode chamar uma função com find_dirs $1 > /dev/null
; também podemos declarar da seguinte forma:
find_dirs(){
find "$1" -type d
}
Nota de man bash
: "As funções são executadas no contexto do shell atual; nenhum novo processo é criado para interpretá-las". Isso significa que você também deve estar ciente das funções com capacidade de alterar o ambiente de execução do shell - alterar variáveis e configurações do terminal.