Для простых команд, таких как less
, лучше сделать псевдоним или экспортировать параметры? Есть ли преимущество одного над другим?
Например, если я хочу less
всегда использовать -R
опцию для отображения необработанных символов, оба эти решения работают:
export LESS='-R'
alias less='less -R'
Для простого случая, подобного этому, есть ли преимущество одного над другим? Какие-нибудь сценарии, где один вызовет проблемы, а другой нет?
Я прочитал несколько info
и man
страниц, а также погуглить, но я до сих пор застрял на этом.
less
вы можете сделать это с помощьюlesskey
)Ответы:
Одно из различий между ними состоит в том, что псевдонимы - это только функция оболочки. Переменные среды наследуются всеми подпроцессами (если не были намеренно очищены).
Переменная окружения будет больше шансов на работу , даже если
less
запущен косвенно, например, через другую оболочку (напримерtcsh
),man
,vim
,psql
и т.д.источник
bash -c 'alias ll="ls -l"; ll'
не будет использовать псевдоним.export LESS='-R'
.zshrc, откройте сеанс zsh, а затем переключитесь на bash в том же сеансе (без экспорта в .bashrc), переменная среды все равно будет установлена? Я думал бы, что оба будут потеряны ....Это сильно зависит от инструмента, который вы используете. Будут инструменты, которые позволяют вам использовать либо другие, которые позволяют только один.
Существуют команды, которые вызываются другими и считывают переменные среды и принимают те же параметры, но добавление к каждому из них одного и того же переключателя создает трудности, как и компиляторы, поскольку
make
здесь переменные среды сияют. Вы устанавливаете переменную и забываете об этом. Это также плюс, что он может быть временным и работать для одной команды.Суть в том, что это комплекс предпочтений и наилучшее действие для задачи, будут времена, когда настройка псевдонима проще и постояннее, чем переменная окружения, и в других случаях, когда вам нужен массив инструментов, которые ведут себя так же, как и вы. люблю переменные среды.
источник