问题描述
我正在尝试在服务器.bashrc
文件中设置Pyenv的加载路径。
我正在跟踪此tutorial,它要求我们将pyenv
设置为加载路径
但是,在我的.bashrc
文件中,我已经看到以下命令
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
与上面共享的教程中提供的以下内容有何不同?
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
解决方法
主要是bash的语法。
#1。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
等同于
export PATH="$HOME/.pyenv/bin:$PATH"
在第一种情况下,您要声明一个名为PYENV_ROOT
的变量,然后使用它。
#2。
if
和fi
是在bash中编写if语句的方式。
#3。
command -v pyenv
在这种情况下用于执行命令(pyenv
),-v
选项将打印路径名,例如
$ command -v python
/usr/bin/python
if command -v pyenv 1
表示如果找到命令pyenv
,则执行eval "$(pyenv init -)"
#4。
在这里,>/dev/null 2>&1;
用于丢弃输出。详细了解this answer。
因此,两个代码块几乎相同,唯一的区别是:第一个有一个if-block
,第二个有一个额外的命令eval "$(pyenv virtualenv-init -)"
。