web-dev-qa-db-fra.com

commande shopt introuvable dans le fichier .bashrc après la mise à jour du shell

J'ai mis à jour mon shell à ZSH. Quand je source ~/.bashrc. Je reçois cette erreur

Il y a eu une erreur chez votre médecin. quand j'exécute cette commande

echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

/home/amerrnath/.bashrc:17: command not found: shopt /home/amerrnath/.bashrc:25: command not found: shopt /home/amerrnath/.bashrc:109: command not found: shopt /usr/share/bash-completion/bash_completion:35: parse error near]]'

S'il vous plaît aidez-moi à résoudre ce problème

19
Amerrnath

zsh utilise le profil env ~/.zshrc, pas ~/.bashrc.

vous devez donc ajouter vos paramètres env au fichier .zshrc, puis 

source ~/.zshrc

Ça doit marcher.

lien rbenv github

47
sudoz

Pour placer quelque chose dans ~/.bashrc:

Basculer vers le bash:

exec bash

Ensuite

source ~/.bashrc

Le passage à bash n’affectera pas la nouvelle fenêtre du terminal. Mais si vous voulez basculer la fenêtre actuelle vers zsh.

Basculer vers zsh:

exec zsh

référence

24
Taimoor Changaiz

shopt n'est pas une commande, mais un shell intégré. bash sait quoi en faire car c'est un bash intégré, mais zsh n'a aucune idée de ce que c'est. Vous voudrez examiner setopt qui est un zsh intégré et insérer ces valeurs dans un nouveau script .zshrc.

10
Omnipresence

Votre fichier bashrc a été écrit pour bash. zsh n'est pas bash.

Je suis surpris que zsh essaie de charger votre .bashrc du tout.

Si ce n'est pas le cas et que vous le recherchez manuellement (à partir de .profile ou similaire). Arrêter de faire ça.

Ensuite, vous écrivez un fichier zsh init approprié à la place.

Si vous voulez utiliser zsh, vous devez utiliser zsh et non bash.

shopt est un bash-isme.

[[ est un bash-isme.

6
Etan Reisner

Pour une raison quelconque, après la mise à niveau de 16.04 à 17.10 et à 18.04, le lien symbolique/bin/sh a été défini sur dash not bash. Mise à jour de ce lien:

Sudo cd /bin && ln -sf bash sh

résolu ce problème pour moi

0
Andrei Mironenko