pyenv安装脚本:需要帮助来了解它的作用

时间:2018-10-21 13:05:02

标签: bash pyenv

执行install 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的用途是什么?
  • 为什么在if块内需要eval?我们不能直接运行pyenv init -吗?

感谢您的帮助!

0 个答案:

没有答案