web-dev-qa-db-fra.com

Commande introuvable après la définition de la source dans le script bash

En suivant les instructions ici , et tout fonctionne correctement à la main. Cependant, lorsque j'utilise les instructions dans un script bash, j'obtiens rbenv command not found car le source ~/.bashrc ne s'est pas exécuté correctement. Que se passe-t-il? Sentez-vous comme je l'ai déjà rencontré auparavant sur quelque chose d'autre ...

* Le bit d'exécution est défini, a lancé dos2unix et a #!/bin/bash en haut.

#!/bin/bash

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/Ruby-build.git ~/.rbenv/plugins/Ruby-build
rbenv install 2.3.1
1
user58446

C’est parce que le sous-shell de script ne s’exécute pas de manière interactive, auquel cas le ~/.bashrc est défini pour ne rien faire par défaut. Vous pouvez utiliser l'une des solutions de contournement expliquées dans this et cette réponse ou simplement appeler rbenv avec le chemin complet sur la dernière ligne:

$HOME/.rbenv/bin/rbenv install 2.3.1

Notez que pour Cosmic, il y a n package rbenv dans les référentiels.

0
dessert