Você prefere scripts bash ou aliases para atalhos? [fechadas]

8

Eu tenho um diretório ~/bin (que está no meu PATH ) onde eu armazeno um monte de pequenos scripts de 1 ou 2 linhas. Alguns deles apenas cd em um diretório e executam um comando em um arquivo, como vim ou algo assim. Mas também tenho muitos aliases no meu arquivo .bash_aliases que servem ao mesmo propósito.

Como você decide entre escrever um pequeno script e escrever um apelido? Importa em tudo o caminho que você vai?

    
por dan 29.04.2011 / 05:00

4 respostas

5

Se eu usá-los com freqüência suficiente para justificar a sobrecarga de carregá-los em cada shell. Vou escrevê-las como funções.

Se eles são específicos do projeto, eu posso escrevê-los como um conjunto de aliases e funções que podem ser originados em um shell quando estou trabalhando nesse projeto.

Somente se eles trabalharem de maneira independente, tudo será transformado em um script no meu ~ / bin. Existem alguns liners que são basicamente aliases, mas estes são para executar a partir de locais diferentes de shells (execute prompts em outros programas, por exemplo). Na maior parte, eles têm que ser scripts bastante substanciais.

    
por 29.04.2011 / 05:30
1

Em geral, as funções do script de shell são mais flexíveis do que os aliases e você deve preferí-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. Concordo com Caleb que os aliases se encaixam bem com simples forros, por exemplo alias cp='cp -i'

    
por 29.04.2011 / 13:42
1

Para algo mais complicado que uma substituição de string de um único comando, um script é provavelmente mais apropriado. Além disso, qualquer coisa que seja usada por outros scripts ou que possa ser usada por outras pessoas provavelmente será melhor como scripts. Embora executar programas fora do diretório bin de outra pessoa não seja uma ótima ideia, é melhor do que pesquisar o arquivo de aliases individuais de alguém.

Os aliases são os melhores para personalizar seu ambiente interativo. Por exemplo, e='emacs -nw' e esse tipo de coisa.

    
por 03.06.2011 / 23:33
0

Eu uso a abordagem mais simples possível.

Principalmente, se o comando não tiver parâmetros, geralmente uso aliases.

Se o comando tiver parâmetros, eu uso uma função.

por exemplo. fazendo e cd'ing para um diretório:

md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }

Eu também uso uma função se o comando usa uma função instalada que possui parâmetros params

por exemplo, adicionando -v ao git:

git () { [ $1 = commit ] && command git commit -v "${@:2}" || command git "$@"; }
    
por 23.07.2014 / 16:35