首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash -c nvm不工作

bash -c nvm不工作
EN

Ask Ubuntu用户
提问于 2022-09-19 11:31:09
回答 3查看 394关注 0票数 3

我已经安装了nvm,它被附加到我的/home/www-data/.bashrc

调用nvm是有效的。

代码语言:javascript
复制
bash
nvm

作品

代码语言:javascript
复制
$ bash -c nvm
bash: nvm: command not found

不管用。

当我指定rcfile时,也是如此。

代码语言:javascript
复制
$ bash  --rcfile /home/www-data/.bashrc -c "nvm"
bash: nvm: command not found

为什么会这样呢?

最后,我希望在RoboFile exec()命令中使用nvm,并尝试将其包装到bash -c中,因为nvm是bash函数,而不是真正的脚本。

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2022-09-19 11:57:13

为什么会这样呢?

当使用-c调用时,bash作为一个非交互式shell运行。不读取默认的交互式shell启动文件(/etc/bash.bashrc~/.bashrc)。即使您强制读取~/.bashrc,它的正文也可能不会执行--例如,默认的Ubuntu (在创建帐户期间复制自/etc/skel )包括行

代码语言:javascript
复制
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

它绕过了所有的跟随。

您可以使用bash -ic强制使用交互式shell,但这可能会导致其他问题,这取决于.bashrc中的其他内容。

票数 5
EN

Ask Ubuntu用户

发布于 2022-09-19 11:58:35

试一试

代码语言:javascript
复制
bash -ic nvm

将bash作为交互式shell 运行,提供命令似乎不符合bash文档,但它有效。

票数 1
EN

Ask Ubuntu用户

发布于 2022-09-19 11:52:17

我改用了https://www.npmjs.com/package/n,在这种情况下,它的工作效果要好得多。

它是nvm的另一种选择,不需要所有那些bash脚本。这就是为什么它可能在没有上述问题的情况下起作用的原因。

可以使用以下命令安装n

代码语言:javascript
复制
npm install -g n
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1430145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档