bash -c nvm não funciona

bash -c nvm não funciona

Eu instalei nvme ele foi anexado ao meu/home/www-data/.bashrc

Ligar nvmfunciona.

bash
nvm

funciona

mas

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

não funciona.

mesmo quando eu especifico o rcfile

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

Por que é que?

No resultado final, quero usar nvm no comando RoboFile exec() e tentei envolvê-lo bash -cporque nvmé uma função bash e não um script real.

Responder1

Por que é que?

Quando invocado com -c, o bash é executado como umnão interativoconcha. Os arquivos de inicialização do shell interativo padrão ( /etc/bash.bashrc, ~/.bashrc) não são lidos. Mesmo se você forçar ~/.bashrca leitura, seu corpo provavelmente não será executado - o padrão do Ubuntu (copiado de /etc/skel durante a criação da conta), por exemplo, inclui as linhas

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

que ignora tudo o que segue.

Vocêpoderiaforçar um shell interativo usando bash -ic, no entanto, isso pode causar outros problemas dependendo do que mais estiver no seu arquivo .bashrc.

Responder2

Tentar

bash -ic nvm

Executando o bash como shell interativoefornecer um comando não parece estar em conformidade com a documentação do bash, mas funciona.

Responder3

eu mudei parahttps://www.npmjs.com/package/no que funciona muito melhor neste caso.

É uma alternativa nvme não precisa de todos aqueles scripts bash. É por isso que provavelmente funciona também sem os problemas acima.

npode ser instalado com o seguinte comando:

npm install -g n

informação relacionada