Os aliases são mais úteis quando você deseja encurtar parte de um comando comumente usado que recebe argumentos variáveis. Em um contexto de ruby dev que pode estar criando um alias como
alias be="bundle exec"
porque quem quer digitar bundle exec
o tempo todo?
Se o que você realmente quer é uma versão mais curta de um comando mais longo com argumentos estáticos, então você deve criar um script de qualquer maneira. Com um script, ele estará sempre disponível e não dependerá do fornecimento de perfis específicos em contextos específicos (em que basicamente você nunca pode confiar).
Um caso mais comman (como o acima) é quando você usa um alias porque deseja argumentos de cadeia sem esforço até o final do alias. Por exemplo
$ be rails server
ou
$ be rake db:migrate
Em ambos os casos, não quero ter que digitar mais do que preciso. Com apenas uma pitada de bash, no entanto, você pode conseguir a mesma coisa em uma solução mais versátil.
Semelhante a algumas das respostas acima, crie um arquivo - /usr/local/bin/be
neste exemplo. Isso pressupõe que /usr/local/bin
esteja incluído no seu PATH
.
#!/usr/bin/env bash
bundle exec "$@"
seguido com (possivelmente com sudo
)
$ chmod +x /usr/local/bin/be
Este é um exemplo ingênuo, e requer que ruby
e bundler
gem tenham sido instalados, mas o que devemos notar é "$@"
, o que nos permite passar um número variável de argumentos para o roteiro. Assim, você obtém a ergonomia do alias, mas com um comando que está sempre disponível e não depende do contexto.
Acho essa abordagem particularmente útil ao trabalhar com contêineres. Espero que ajude.