Quero saber a diferença entre aliases e funções no shell bash - e quando usar qual deles.
Parece óbvio que, como as funções podem receber argumentos, elas são muito mais poderosas - como trabalho principalmente na estrada com um netbook e deseja economizar energia e poder de processamento, gostaria especialmente de saber um pouco mais sobre as diferenças de desempenho. destas duas maneiras de estender a funcionalidade do bash são.
Respostas:
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
A partir daí você digita
no terminal e 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 simples de eco
Embora possa parecer semelhante a um alias quando você o chama
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
rm
comando assimSempre 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.
fonte
Um alias é um atalho simples usado em um console para evitar a digitação de comandos longos ou sempre a repetição das mesmas opções.
Um exemplo clássico seria:
O alias funciona apenas em um console interativo, não deve ser usado em scripts.
A função pode ser usada em scripts ou no console, mas é mais frequentemente usada em scripts.
Ao contrário dos aliases, que são substituídos apenas pelo seu valor, uma função será interpretada pelo shell bash.
As funções são muito mais poderosas que os pseudônimos; elas podem ser usadas para criar programas muito complexos.
fonte