user1161901 Asked: 2020-04-12 05:45:44 +0800 CST2020-04-12 05:45:44 +0800 CST 2020-04-12 05:45:44 +0800 CST 使用 .sh 文件设置 python shell 版本 772 我正在执行我的./shell.sh其中包含 eval "$(pyenv init -)" pyenv shell 3.8.2 但什么也没有发生。如果我在 bash 中手动运行此代码,它可以正常工作,并且 shell 版本的 python2.7.10会从3.8.2. 我在正确的目录中,我给了.sh文件执行权限。 bash python3 1 个回答 Voted Best Answer Kamil Maciorowski 2020-04-12T06:45:24+08:002020-04-12T06:45:24+08:00 添加pyenv init到您的 shell 以启用 shims 和自动完成功能。请确保eval "$(pyenv init -)"将其放在 shell 配置文件的末尾,因为它PATH在初始化期间进行操作。 (来源) 该命令旨在操纵shell的环境;并定义一些功能。如果它在脚本中,那么它将操纵解释脚本的 shell 的环境(并在其中定义函数)。 如果您的脚本是并且您使用(or )shell.sh运行它,那么解释脚本的 shell不是您当前的 shell。请参阅采购(或)和执行文件有什么区别?./shell.shbash shell.sh.sourcebash 所以不要指望你的脚本会改变你当前shell 中的任何东西,除非你获取脚本: . ./shell.sh 请注意,在这种情况下,该文件不需要是可执行的。shebang(如果有的话)无关紧要。
(来源)
该命令旨在操纵shell的环境;并定义一些功能。如果它在脚本中,那么它将操纵解释脚本的 shell 的环境(并在其中定义函数)。
如果您的脚本是并且您使用(or )
shell.sh
运行它,那么解释脚本的 shell不是您当前的 shell。请参阅采购(或)和执行文件有什么区别?./shell.sh
bash shell.sh
.
source
bash
所以不要指望你的脚本会改变你当前shell 中的任何东西,除非你获取脚本:
请注意,在这种情况下,该文件不需要是可执行的。shebang(如果有的话)无关紧要。