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がすでにインストールされていても。実際に新しい端末で実行すると、次のようにcommand -v nvm
表示されます。
不揮発性
なぜこれが起こるのかご存知ですか?
答え1
NVMinstall.sh
スクリプトはデフォルトで~/.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
終了コードを次の場所に保存します。不揮発性記憶装置。0発見されたという意味だ。