Сценарий установки pyenv: нужна помощь, чтобы понять, что он делает - PullRequest
0 голосов
/ 21 октября 2018

Один из шагов для установки pyenv требует ввода в терминал следующего кода:

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Хотя я понимаю, что делают echo -e и >> ./bash_profile, я не оченьпонять, что происходит внутри кавычек.

После выполнения команды выше, мой bash_profile теперь имеет следующее:

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

Вопрос: Не могли бы выобъясните, что делает этот код?Правильна ли моя интерпретация происходящего (см. Ниже)?

Интерпретация:

  • command -v берет имя команды и выводит ее описание, если данная команда не существует, ничего не выводится;таким образом command -v pyenv выведет описание pyenv, если оно доступно (что будет, если вы установили pyenv), в противном случае ничего не будет отображаться
  • 1>/dev/null принимает вывод command -v pyenv и выбрасывает его
  • Какова цель для 2>&1?
  • Зачем нам нужен eval внутри блока if?Разве мы не можем просто запустить pyenv init - напрямую?

Спасибо за помощь!

...