bash -c nvm no funciona

bash -c nvm no funciona

Lo instalé nvmy lo agregué a mi/home/www-data/.bashrc

Llamar nvmfunciona.

bash
nvm

obras

pero

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

No funciona.

Lo mismo cuando especifico el rcfile

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

¿Porqué es eso?

En el resultado final, quiero usar nvm en el comando RoboFile exec() e intenté incluirlo bash -cporque nvmes una función bash y no un script real.

Respuesta1

¿Porqué es eso?

Cuando se invoca con -c, bash se ejecuta como unno interactivocaparazón. Los archivos de inicio del shell interactivo predeterminados ( /etc/bash.bashrc, ~/.bashrc) no se leen. Incluso si fuerza ~/.bashrcla lectura, es probable que su cuerpo no se ejecute: el predeterminado de Ubuntu (copiado de /etc/skel durante la creación de la cuenta), por ejemplo, incluye las líneas

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

que pasa por alto todo lo siguiente.

podríafuerce el uso de un shell interactivo bash -ic, sin embargo, eso puede causar otros problemas dependiendo de qué más haya en su archivo .bashrc.

Respuesta2

Intentar

bash -ic nvm

Ejecutando bash como shell interactivoyproporcionar un comando no parece cumplir con la documentación de bash pero funciona.

Respuesta3

me cambié ahttps://www.npmjs.com/package/nque funciona mucho mejor en este caso.

Es una alternativa nvmy no necesita todas esas secuencias de comandos bash. Por eso probablemente funcione también sin los problemas anteriores.

nse puede instalar con el siguiente comando:

npm install -g n

información relacionada