我设置了一个Makefile,如下所示:
NVM := $(shell command -v nvm 2> /dev/null)
setup:
ifndef NVM
@echo "Installing NVM"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
nvm install node
endif
# do setup here我的目标是安装nvm,如果还没有安装的话。每次运行make setup时,脚本都进入nvm安装,如果nvm已经安装了,则<#>even。事实上,如果在一个新的终端中运行command -v nvm,我会看到:
nvm
知道为什么会发生这种事吗?
发布于 2020-05-21 16:16:14
默认情况下,NVM install.sh脚本将安装到~/.nvm。它不安装名为nvm的实际二进制文件或脚本。相反,nvm命令是在~/.nvm/nvm.sh中定义的函数,它来自交互式终端配置文件(例如,~/.bashrc)。测试NVM安装的一种简单方法是检查源文件是否存在。
NVM := $(shell test -f "$(HOME)/.nvm/nvm.sh"; echo $?)
setup:
ifneq ($(NVM),0)
@echo "NVM not installed"
else
@echo "NVM installed"
endif请注意,我们将退出代码存储在NVM中。0表示它被发现了。
https://unix.stackexchange.com/questions/537473
复制相似问题