Псевдонимы в основном полезны, когда вы хотите сократить часть часто используемой команды, которая принимает переменные аргументы. В контексте ruby dev, который может создавать псевдоним, такой как
alias be="bundle exec"
потому что кто хочет все время печатать bundle exec
?
Если вам действительно нужна более короткая версия более длинной команды со статическими аргументами, то вы все равно должны создать скрипт. С помощью скрипта он всегда будет доступен и не будет зависеть от выбора конкретных профилей в определенных контекстах (на которые вы в принципе никогда не можете положиться).
Более распространенный случай (как вышеописанный) - это когда вы используете псевдоним, потому что вы хотите, чтобы строковые аргументы были легкими до конца псевдонима. Например
$ be rails server
или же
$ be rake db:migrate
В обоих случаях я не хочу печатать больше, чем нужно. Однако с помощью всего лишь нескольких шагов вы можете добиться того же в более универсальном решении.
Подобно некоторым из приведенных выше ответов, создайте файл - /usr/local/bin/be
в этом примере. Это предполагает, что /usr/local/bin
включен в ваш PATH
.
#!/usr/bin/env bash
bundle exec "$@"
с последующим (возможно, с sudo
)
$ chmod +x /usr/local/bin/be
Это немного наивный пример, и он требует, чтобы были установлены как ruby
и гем bundler
, но следует обратить внимание на "$@"
который позволяет передавать переменное число аргументов в скрипт. Таким образом, вы получаете эргономику псевдонима, но с помощью команды, которая всегда доступна и не зависит от контекста.
Я считаю этот подход особенно полезным при работе с контейнерами. Надеюсь, поможет.