Aqui está um procedimento essencial para declarar uma função permanente:
Abra o ~/.bashrcarquivo 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 ~/.bashrcdeclarar sua própria função, por exemplo:
find_dirs(){
find "$1" -type d
}
Salve e feche o arquivo.
O ~/.bashrcarquivo é lido toda vez que você abre o shell interativo (que é a nova guia do terminal, sshefetua login ou abre o TTY1 ou outro console virtual). Isso não estará disponível nos arquivos de script, porque ~/.bashrcnão é lido para shells não interativos. Também não está disponível se você executar bashcom a --norcopção
Se você deseja que a função esteja disponível imediatamente na guia atualmente aberta, use o source ~/.bashrccomando
Funções recebem argumentos como comandos regulares. Por exemplo, $1através de $9indica os parâmetros posicionais quando você chama uma função. No exemplo acima, find_dirspega 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.