alias vs export para comandos simples

29

Para comandos simples como less , é melhor criar um alias ou exportar as opções? Existe algum benefício de um sobre o outro?

Por exemplo, se eu quiser que less sempre use a opção -R para mostrar caracteres brutos, as duas soluções funcionam:

  1. export LESS='-R'
  2. alias less='less -R'

Para um caso simples como este, existe algum benefício de um sobre o outro? Quaisquer cenários em que um causará problemas e o outro não?

Li várias páginas info e man , além de pesquisá-la no Google, mas ainda estou presa a isso.

    
por skittleys 16.05.2014 / 03:11

2 respostas

27

Uma diferença entre os dois é que os aliases são apenas um recurso de shell. As variáveis de ambiente são herdadas por todos os subprocessos (a menos que sejam deliberadamente desmarcadas).

A variável de ambiente teria maior probabilidade de funcionar mesmo se less fosse lançado indiretamente, como por meio de outro shell (por exemplo, tcsh ), man , vim , psql , etc.

    
por 16.05.2014 / 03:36
1

Depende muito da ferramenta que você está usando. Haverá ferramentas que lhe permitem usar, outras que só permitem uma.

Existem comandos que são chamados por outros e lêem as variáveis de ambiente e aceitam os mesmos switches, mas adicionando a cada um o mesmo switch é um incômodo, como compiladores como make , aqui as variáveis de ambiente brilham. Você define a variável e esquece. É também uma vantagem que pode ser temporal e trabalhar por um único comando.

Linha de fundo, é uma questão de preferências e a melhor ação para a tarefa, haverá momentos em que a configuração de um alias é mais fácil e permanente do que uma variável de ambiente e outras vezes em que você precisa de uma série de ferramentas se comportando da mesma maneira onde você amaria variáveis de ambiente.

    
por 16.05.2014 / 03:43

Tags