Pense em aliases como apelidos. Você pode ter um comando que executa muito, mas deseja encurtar.
Como exemplo, muitas vezes você quer ir direto para a área de trabalho na linha de comando, para fazer isso
alias desktop="cd ~/Desktop"
A partir daí você digita
desktop
no terminal e executará o cd ~/Desktoppara 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 simples de eco
function e {
echo $1
echo $1 $1
echo $1 $1 $1
}
Embora possa parecer semelhante a um alias quando você o chama
e Hello
Seu e () pode ter muitas coisas diferentes acontecendo. O exemplo acima é um exemplo simplista.
Os aliases devem ser reservados para casos de uso simples. Exemplo pessoal - substituí meu rmcomando assim
alias rm='trash-put'
Sempre que eu faço uma rm, ela a envia para a lixeira, em vez de excluí-la do disco. Isso atende à minha falta de jeito no terminal onde posso (algumas vezes) excluir acidentalmente um arquivo importante.
As funções , você precisa se lembrar, são peças de lógica. Você normalmente não usaria uma função autônoma. Seria parte de um script maior. Imagine um script que pegue todos os seus arquivos e os renomeie para as versões latinas deles. Ignore que existem maneiras diferentes de fazer isso.
Mas o que você pode fazer é percorrer todos os arquivos do diretório e passar o caminho do arquivo para sua função RenameAsPigLatin. A função RenameAsPigLatin pode ter 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 focar na renomeação por suas regras estranhas, enquanto o restante do script pode percorrer vários diretórios, conforme necessário.