Pense em aliases como apelidos. Você pode ter um comando que você executa muito, mas quer encurtar.
Como exemplo, muitas vezes você quer ir direto ao desktop na linha de comando, então você pode fazer isso
alias desktop="cd ~/Desktop"
A partir daí, basta digitar
desktop
no terminal e ele irá executar o cd ~/Desktop
para você.
Funções contém lógica. Em uma função, você pode fazer chamadas para vários programas diferentes. Aqui está uma função de eco simples
function e {
echo
echo
echo
}
Embora pareça semelhante a um alias quando você o chama
e Hello
Seu e () pode ter várias coisas diferentes acontecendo. O acima é um exemplo simplista.
Aliases devem ser reservados para casos de uso simples. Exemplo pessoal - Eu substituí meu comando rm
como este
alias rm='trash-put'
Sempre que eu fizer um rm, ele será enviado para a lixeira em vez de excluí-lo do disco. Isso atende a minha falta de jeito no terminal onde eu posso (às vezes) acidentalmente excluir um arquivo importante.
Funções , você precisa lembrar, são partes da lógica. Você não usaria uma função autônoma, normalmente. Seria parte de um roteiro maior. Imagine um script que pegue todos os seus arquivos e os renomeie para as versões latinas do porco. Ignore que existem maneiras diferentes de fazer isso.
Mas o que você pode fazer é percorrer todos os arquivos no diretório e passar o caminho de arquivo para a sua função RenameAsPigLatin. A função RenameAsPigLatin pode ter uma lógica extra envolvendo números, onde você decide que os arquivos que terminam com números não devem ser renomeados.
Imediatamente você pode ver o benefício de tê-lo como uma função. A função pode se concentrar na renomeação por suas regras estranhas, enquanto o resto do script pode percorrer vários diretórios, conforme necessário.