bashスクリプトではnvmコマンドを使用できません

bashスクリプトではnvmコマンドを使用できません

nvmノードが最終的にインストールされるスクリプトを作成しようとしています。
cURLがインストールされていますnvm.profileファイルまたは修正が表示され.bashrc(両方とも機能します)、bashプロンプトに入力すると、nvm利用可能なオプションなどが表示されます。
したがって、nvmが機能する可能性があります。ノードを手動でインストールできますが、nvmコマンドをシェルスクリプトに挿入すると、次のようになります。

nano test.sh

#!/bin/bash
nvm

そして実行してください:

chmod 755 test.sh
./test.sh

私は得る:

./test.sh: line 2: nvm: command not found

見つけられないnvmと思う必要もない

nvm ls-remote 

または

nvm install ...

Ubuntu 14.04がインストールされ、Bashが私のシェルです。

答え1

nvmコマンドはにあります~/.nvm/nvm.sh

起動時に使用できるように、次のいずれかのスクリプトを入手できますnvm()

. ~/.nvm/nvm.sh
. $(brew --prefix nvm)/nvm.sh  # if installed via Brew

答え2

OSXからBrew経由でインストールした場合は、インストールに関する詳細を取得してBrewソーススクリプトをスクリプト環境にロードできます。

プロジェクトにブートストラップを適用する方法があります。

brew install nvm
. $(brew --prefix nvm)/nvm.sh
nvm install
...

答え3

ここと内のすべての答えこの関連nvmの問題私が作るこのスクリプト(要旨)コピーまたは複製できます(インライン文書):

# shellcheck shell=sh
# https://gist.github.com/karfau/dcf98c6eefc2f2132c160f5c14d2112f

# needs to be sourced as part of your script
# 1. tries to configure nvm and run `nvm install`
# 2. checks if the node version is correct based on ./.nvmrc (`v` prefix not supported)
# if both doesn't work, exits with code 1 and some helpful messages

# https://unix.stackexchange.com/a/184512/194420
# https://github.com/nvm-sh/nvm/issues/1290
if [ -f ~/.nvm/nvm.sh ]; then
  echo 'sourcing nvm from ~/.nvm'
  . ~/.nvm/nvm.sh
elif command -v brew; then
  # https://docs.brew.sh/Manpage#--prefix-formula
  BREW_PREFIX=$(brew --prefix nvm)
  if [ -f "$BREW_PREFIX/nvm.sh" ]; then
    echo "sourcing nvm from brew ($BREW_PREFIX)"
    . $BREW_PREFIX/nvm.sh
  fi
fi

if command -v nvm ; then
  nvm i
else
  echo "WARN: not able to configure nvm"
fi

NODE_VERSION="v$(cat .nvmrc)"
which node
ACTIVE_VERSION=$(node --version)
GLOBAL_NPM=$(which npm || echo "not found on PATH")
# .nvmrc can contain only major or major.minor or full version
# so we replace active version with node version and anything afterwards
# if something is left, it's not a match
if [ "${ACTIVE_VERSION%%$NODE_VERSION*}" ] || [ ! -e "$GLOBAL_NPM" ]; then
  echo "expected node '$NODE_VERSION' and npm on path"
  echo "but was '$ACTIVE_VERSION' and npm:'$GLOBAL_NPM'"
  exit 1
fi

ポイントに役立つことを願っています。ポイントやここからフィードバックを歓迎します。

PS:これまで、NVM_DIRユーザーディレクトリの代わりに環境変数を使用してカスタムインストールセクションをサポートするようにポイントを更新します。nvm usenvm install

答え4

これらの解決策のどれも私の問題を解決できませんでした。 nvmを使用する前に、shファイルでこれを行う必要がありました。

export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
nvm --version # this line can be delete

関連情報