Eu tenho um ~/bin
diretório (que está no meu PATH
) onde armazeno muitos pequenos scripts de 1 ou 2 linhas. Alguns deles simplesmente cd
entram em um diretório e executam um comando em um arquivo, como vim
algo assim. Mas também tenho muitos apelidos no meu .bash_aliases
arquivo que servem ao mesmo propósito.
Como você decide entre escrever um pequeno script bash e escrever um alias? Importa em todo o caminho que você segue?
Respostas:
Se eu usá-los com freqüência suficiente para garantir a sobrecarga de tê-los carregados em cada shell. Vou escrevê-los como funções.
Se eles são específicos do projeto, eu poderia escrevê-los como um conjunto de aliases e funções que podem ser originadas em um shell quando estou trabalhando nesse projeto.
Somente se eles trabalharem de maneira independente, alguma coisa será transformada em um script no meu ~ / bin. Existem alguns liners que são basicamente aliases, mas são para rodar em locais diferentes de shells (executar prompts em outros programas, por exemplo). Na maioria das vezes, eles precisam ser scripts bastante substanciais.
fonte
Em geral, as funções de script de shell são mais flexíveis que os alias e você deve preferi-las. Por exemplo, em um alias, você não pode testar se o número de argumentos fornecidos ou seus tipos são os esperados. Eu concordo com Caleb que aliases se encaixam bem com liners simples, por exemplo
alias cp='cp -i'
fonte
Para algo mais complicado, uma substituição de cadeia de caracteres de um único comando, um script é provavelmente mais apropriado. Além disso, qualquer coisa que será usada por outros scripts ou que possa ser usada por outras pessoas provavelmente será melhor como scripts. Embora a execução de programas fora do diretório bin de outra pessoa não seja uma boa idéia, é melhor do que procurar o arquivo de aliases individuais de alguém.
Os aliases são melhores para personalizar seu ambiente interativo. Por exemplo,,
e='emacs -nw'
e esse tipo de coisa.fonte
Eu uso a abordagem mais simples possível.
Principalmente, se o comando não possui parâmetros, geralmente uso aliases.
Se o comando tiver parâmetros, eu uso uma função.
por exemplo, making e cd'ing para um diretório:
Eu também uso uma função se o comando usar uma função instalada que possui parâmetros
por exemplo, adicionando -v ao git:
fonte