执行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
的用途是什么?eval
?我们不能直接运行pyenv init -
吗?感谢您的帮助!