nvm 命令在 bash 脚本中不可用

oki*_*oki 55 bash shell-script software-installation node.js

我正在尝试构建一个脚本nvm,最终将在其中安装节点。
我已经安装nvm了 cURL。我看到了.profileor.bashrc文件中的修改(都有效),并且nvm在 bash 提示符下键入时,它显示了可用的选项等。
因此 nvm 有效。我可以手动安装节点,但是只要我将nvm命令放入 shell 脚本中:

nano test.sh

#!/bin/bash
nvm
Run Code Online (Sandbox Code Playgroud)

并运行它:

chmod 755 test.sh
./test.sh
Run Code Online (Sandbox Code Playgroud)

我得到:

./test.sh: line 2: nvm: command not found
Run Code Online (Sandbox Code Playgroud)

如果它找不到nvm,我什至不必去想

nvm ls-remote 
Run Code Online (Sandbox Code Playgroud)

或者

nvm install ...
Run Code Online (Sandbox Code Playgroud)

我安装了 Ubuntu 14.04,Bash 是我的 shell。

web*_*jaz 93

nvmcommand 是在~/.nvm/nvm.sh.

您可以在您的开头获取以下脚本之一以使其nvm()可用:

. ~/.nvm/nvm.sh
. ~/.profile
. ~/.bashrc
. $(brew --prefix nvm)/nvm.sh  # if installed via Brew
Run Code Online (Sandbox Code Playgroud)

  • 我已经在本地安装了 `nvm` 并进行了一些研究。`nvm` 是一个在 `nvm.sh` 中声明的 shell 函数,所以基本上你只需要使用 `. ~/.nvm/nvm.sh` 在你的脚本的开头(或者,正如我上面写的, - 源 `.profile`/`.bashrc`) (3认同)
  • 你好谢谢。这是有道理的,因为 nvm 是“安装”在 ~/.nvm 中的。可能只是一个 shell 脚本。我缺少的是我可以输入 nvm 并让它工作,但是当尝试 ~/.nvm 中的 shell 脚本时它不起作用。 (2认同)