Levei quase 10 anos de uso do Linux para fazer esta pergunta. Foi tudo tentativa e erro e navegação aleatória na Internet tarde da noite.
Mas as pessoas não devem precisar de 10 anos para isso. Se eu estivesse iniciando no Linux, gostaria de saber: Quando usar o pseudônimo, quando escrever e quando escrever uma função?
No caso de aliases, eu uso aliases para operações muito simples que não recebem argumentos.
alias houston='cd /home/username/.scripts/'
Isso parece óbvio. Mas algumas pessoas fazem isso:
alias command="bash bashscriptname"
(e adicione-o ao .bashrc
arquivo)
Existe uma boa razão para fazer isso? Estou me esforçando muito, mas realmente não consigo pensar em nenhuma circunstância em que eu queira fazer isso. Portanto, se houver um caso extremo em que isso faça diferença, responda abaixo.
Porque é aí que eu colocaria algo no meu PATH e chmod +x
isso, que é outra coisa que veio depois de anos de tentativa e erro do Linux.
O que me leva ao próximo tópico. Por exemplo, adicionei uma pasta oculta ( .scripts/
) no diretório inicial ao meu PATH, apenas adicionando uma linha ao meu .bashrc
( PATH=$PATH:/home/username/.scripts/
), para que qualquer coisa executável lá seja preenchida automaticamente automaticamente.
Se eu precisasse.
Eu realmente não preciso disso, preciso? Eu usaria isso apenas para linguagens que não são o shell, como Python.
Se for o shell, posso escrever uma função dentro da mesma .bashrc
:
funcname () {
somecommand -someARGS "$@"
}
Como afirmei, descobri muito disso por tentativa e erro. E só vi verdadeiramente a beleza das funções quando meu computador morreu e fui forçado a usar os computadores das pessoas ao meu redor quando não as estavam usando.
Em vez de mover um diretório inteiro de scripts de um computador para outro, acabei substituindo o .bashrc de todo mundo pelo meu, pois eles nunca fizeram uma única modificação.
Mas eu perdi alguma coisa?
Então, o que você diria a um usuário iniciante do Linux sobre quando criar um alias, quando criar um script e quando escrever uma função?
Se não for óbvio, estou assumindo que as pessoas que responderem a isso farão uso das três opções. Se você usar apenas aliases, ou apenas scripts, ou apenas funções - ou se você usar apenas aliases e scripts ou aliases e funções ou scripts e funções - , essa pergunta não será realmente direcionada a você.