哪个配置文件加载

  • 本文关键字:加载 配置文件 sh
  • 更新时间 :
  • 英文 :


我正在尝试从sh中加载特定工具(nvm(。

按照页面中的说明安装它 bash 它工作得很好,测试它会返回以下内容。

$ bash
$ nvm --version 
+ X.XX.X

但是如果我输入

$ sh
$ nvm --version
+ sh: 1: nvm: not found

但它仍然是预期的,因为默认安装修改了.bashrc

现在我已经在我的/etc/profile中包含相同的.bashrc代码

export NVM_DIR="/opt/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

并再次尝试。

$ sh
$ nvm --version
+ sh: 1: nvm: not found
$ echo $NVM_DIR
+ /dir/to/nvm
$ [ -s "$NVM_DIR/nvm.sh" ] && echo "it works?"
+ it works?
$ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
$ nvm --version
X.XX.X

这让我非常困惑。到底发生了什么?sh不是在加载/etc/profile还是我真的做错了什么?

--评论后编辑--

还试图将其包含在本地配置文件中

$ cat ~/.profile
+ export NVM_DIR="/opt/nvm"
+ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  
$ sh
$ nvm --version
+ sh: 1: nvm: not found

本文用 sh 蓝线描述了这个问题。 该问题的解决方案是在ENV变量中设置/etc/profile/

例如,ENV=/etc/profile sh将在 SH 打开时加载配置文件。这解决了问题

最新更新