对于需要从更新的生成进程节点.js从12到14,我想要一个bash脚本来检测
nvm
已安装,如果已安装,请执行
nvm use v14
nvm install v14
如果必要的话),然后我希望nvm选择的节点版本保持在14
bash脚本终止后
我可以用这个脚本切换到v14,但是脚本终止后,shell环境仍然是v12:
#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
source ~/.bashrc
nvm --version
echo $NVM_BIN
node --version
nvm use v14
echo $NVM_BIN
node --version
只是执行
非挥发性物质
bash脚本中的命令很痛苦,因为
非挥发性物质
非挥发性物质
为了剧本。
输出为:
0.33.11
/home/pi/.nvm/versions/node/v12.21.0/bin
v12.21.0
Now using node v14.16.0 (npm v6.14.11)
/home/pi/.nvm/versions/node/v14.16.0/bin
v14.16.0
我认为关键在于确保环境变量
NVM_BIN
脚本退出时会在v14路径上保持,但我不知道如何做到这一点。事实上,我认为执行脚本的shell通常不允许更改父shell中的环境变量。
这个
非挥发性物质
然而,commmand本身就是一个shell脚本,它所做的任何事情在执行完之后都是持久的。我也应该有办法做到的。