Devo criar um alias para cada função bash?

5

Eu fiz um curso rápido sobre bash e terminal e uma das melhores práticas apresentadas no curso foi criar um alias para cada função a ser criada. Por exemplo, se eu tivesse uma função:

function e() { echo "$*"; }

Eu também devo criar um alias:

alias e='e'

Você acha que faz sentido e, se sim, qual é o raciocínio? Eu acho que posso originar as funções e usá-las sem os aliases de qualquer forma, então parece um trabalho desnecessário.

    
por Yos 25.10.2016 / 22:24

2 respostas

5

Caso de aliases

  • Os aliases podem ser bastante úteis quando você deseja se referir a um comando extenso por um nome abreviado.
  • Na ordem de precedência, os aliases são mais altos que as funções, portanto, caso você queira substituir algum nome existente para sua própria sessão , você usaria um alias.

Caso para funções

  • Quando você tem um comando que exige que lida com aspas simples e duplas ao mesmo tempo , use as funções. Aqueles que lidam com sed ou awk entendem muito.
  • Quando você quiser se referir a uma tarefa demorada que consiste em vários comandos interagindo com variáveis, use function. Em geral, eu pessoalmente sigo a regra de que, se houver mais de 3 comandos, é hora de usar uma função.
  • Aliases podem ser evitados anexando \ . Isso é útil para administradores de sistema. Se você não quiser que seu usuário execute determinado comando, uma função terá precedência sobre. Exemplo:

    $ ls
    serg says this command is a no-no
    $ \ls
    serg says this command is a no-no
    

    observe que o usuário ainda pode executar /bin/ls sem problemas, por isso não é realmente uma boa medida de segurança. Eu diria que o melhor uso seria como um wrapper para algum comando, onde você deseja adicionar um cabeçalho ou remover algumas informações.

  • Da página man do bash: There is no mechanism for using arguments in the replacement text.If arguments are needed, a shell function should be used . Assim, enquanto você pode fazer truques simples - algo como alias e="echo"; e Hello - você iria querer uma função quando você quer lidar extensivamente com argumentos de linha de comando.

Na minha experiência pessoal, encontrei-me usando funções muito mais do que aliases. Eles são como scripts, exceto que não é necessário criar arquivos externos - todos eles podem residir no meu ~/.bashrc . As variáveis de cotação e de referência tornam-se um problema menor.

    
por Sergiy Kolodyazhnyy 26.10.2016 / 02:34
4
function e() { echo "$*"; }
     

Eu também devo criar um alias:

alias e='e'

Isso, como é, é muito burro. Não faz sentido definir um alias de uma função e dar o mesmo nome a ela.

Eu pensaria que o que eles queriam dizer era:

  • Dê a cada função que você escreve um nome descritivo, que pode ser longo.
  • E crie um apelido curto por conveniência.
por muru 26.10.2016 / 03:45

Tags