bash -c nvm が動作しない

bash -c nvm が動作しない

インストールしてnvm、私の/home/www-data/.bashrc

通話はnvm可能です。

bash
nvm

作品

しかし

$ bash -c nvm
bash: nvm: command not found

動作しません。

rcfileを指定した場合も同様

$ bash  --rcfile /home/www-data/.bashrc -c "nvm"
bash: nvm: command not found

何故ですか?

最終的には、RoboFile exec() コマンドで nvm を使用したいのですが、これはbash 関数であり、実際のスクリプトではないbash -cため、それをラップしようとしました。nvm

答え1

何故ですか?

で起動すると-c、bashは非インタラクティブシェル。デフォルトの対話型シェルの起動ファイル(/etc/bash.bashrc~/.bashrc)は読み込まれません。強制的~/.bashrcに読み込んだとしても、その本体は実行されない可能性があります。たとえば、Ubuntuのデフォルトのファイル(アカウント作成時に/etc/skelからコピー)には、次の行が含まれています。

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

後続のすべてをバイパスします。

あなたできたを使用して対話型シェルを強制しますbash -icが、 内の他の内容によっては他の問題が発生する可能性があります.bashrc

答え2

試す

bash -ic nvm

対話型シェルとしてbashを実行するそしてコマンドを提供すると、bash のドキュメントに準拠していないように見えますが、動作します。

答え3

私は切り替えましたhttps://www.npmjs.com/package/nこの場合は、その方がはるかに効果的です。

これは bash スクリプトの代替手段でありnvm、それらすべてを必要としません。そのため、上記の問題もなく動作すると考えられます。

n次のコマンドでインストールできます。

npm install -g n

関連情報