sh - sh 加载哪个配置文件
问题描述
我正在尝试从 sh中加载特定工具( nvm )。
按照 bash 页面中的说明安装它,它可以完美运行并测试它会返回以下内容。
$ bash
$ nvm --version
+ X.XX.X
但如果我输入
$ sh
$ nvm --version
+ sh: 1: nvm: not found
但仍然是预期的,因为默认安装会修改.bashrc
.
现在我.bashrc
在我的/etc/profile
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 蓝线进行了描述。该问题的解决方案是/etc/profile/
在ENV
变量中设置。
例如ENV=/etc/profile sh
会在 sh 打开时加载配置文件。这解决了问题
推荐阅读
- wpf - 如何创建一个继承自 Thumb 的自定义控件“MyThumb”,同时用户不能设置 MyThumb 的宽度和高度?
- java - Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作
- csv - 如何在 Jasper 报告(CSV 导出与 HTML 布局)中省略分组功能(但将分组值作为列包含)?
- python - Python 文件树 + 大小和计数文件和目录的数量
- java - 如何向 JFrame 添加自定义组件?
- c++ - 如何从 cv::Mat 表示 QwT 中的颜色图数据?
- javascript - 需要在 Angular 7 中创建文件的翻书视图
- java - 排序数组列表中的问题
- oracle - 类似结果的 Oracle PARTITION BY 与 GROUP BY 的解释
- c - ncurses下如何可靠处理KEY_HOME和KEY_END