Problème avec bash

Coucou,

Me revoila avec un problème tout beau tout neuf :smiley:
je décide d’allumer mon portable sous debian que je n’ai pas utilisé depuis un certain temps. J’ai simplement voulu ajouter un petit alias dans mon $HOME/.bashrc et au moment de lancer le source .bashrc … stupéfaction :open_mouth:

22:54 willerme@willerme-laptop ~% source .bashrc .bashrc:15: command not found: shopt .bashrc:21: command not found: shopt /etc/bash_completion:[:54: unknown condition: -2 /etc/bash_completion:[:55: unknown condition: -2 /etc/bash_completion:[:62: unknown condition: -2 /etc/bash_completion:[:63: unknown condition: -2 /etc/bash_completion:[:68: unknown condition: -2 /etc/bash_completion:75: command not found: shopt /etc/bash_completion:2485: command not found: shopt /etc/bash_completion:2642: command not found: shopt /etc/bash_completion:3143: parse error near `&&' zsh: exit 1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

j’ai regarder un peu mon fichier /etc/bash_completion, et je n’ai pas trouvé d’erreur de syntaxe shell aux lignes citées plus haut.
Mon shell par defaut est zsh, configuré grace à un chsh.

Depuis, plus d’auto-completion (j’ai remarqué que ça pour le moment).

Je cherche depuis un petit moment la ><
Si quelqu’un à déjà vu ça ^^ merci de prendre un peu de son temps pour m’aider

La colorisation pour les cinéphiles c’est la tecnique qui consiste à
rajouter de la couleur en lieu et place du noir et blanc.
Un procédé discutable peu respectueux de l’original pour certains, un progrès
a posteriori outrepassant les limitations d’époque pour d’autres.

En ce qui nous concerne, la colorisation syntaxique nous permet
de visualiser les scripts de manière rapide.
Ouvre .bashrc en gedit, kate, vim, emacs … en couleur, ça t’aidera à
repérer un “’”, “(” “if” “#” “case” … mal refermé .

Compare les couleurs avec celui de /etc/skel

$ diff .bashrc /etc/skel/.bashrc

La référence à .bash_completion découle de .bashrc, si tu ne l’as pas modifié pas la peine de le vérifier

euh … oui d’accord, mais c’est pas vraiment mon problème.

un exemple, je source mon .bashrc, et j’obtiens donc l’encadré donné plus haut.
ensuite je veut faire un apt-get install
je tape donc apt-get in pour auto-compléter ma commande et voila le résultat :

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ apt-get in_complete:1: command not found: compgen _complete:1: command not found: compgen

Bref, pour le moment ça ne me gêne pas plus que ça car j’utilise zsh et que je peut donc déclarer mes alias et autre chose dans le fichier .zshrc mais je n’aime pas laisser des choses en désordre, surtout qu’un jour je pourrais avoir des surprises si je décide de me séparer de zsh.

Voila, honnêtement je ne connais pas grand chose au niveau de la configuration de bash, mais j’ai remis mon .bashrc à neuf grâce à un cp /etc/skel/.bashrc ~/ mais ça ne change rien …

:cry:

Comme la colorisation syntaxique, une commande qui ne résoud rien mais met en évidence certaines choses.

$ env

ce sont des outils pour diagnostiquer, pas des baguettes magiques.

Les messages d’erreurs m’inclinent à penser qu’il y a des erreurs en .bashrc.

.bashrc:15: command not found: shopt
.bashrc:21: command not found: shopt

les numéros de ligne sont cités, va les relire. La complétion qui déraille est conséquence de ce point.

Ton PS1 ne peux pas être pris en compte . ($ echo $PS1)

[\e]0;\u@\h: \w\a]${debian_chroot:+($debian_chroot)}\u@\h:\w$

Oublier de fermer une parenthèse, laisser trainer une apostrophe, des guillemets, ne pas clore un “if” ou "case"
inverser ’ et `, ne pas échapper un caractère spécial, saboter une commande existante par un alias…

pleins de scénarios envisageables que la colorisation syntaxique aidera à mettre en évidence.

$ cp /etc/skel/.bashrc ~/

$USER=willerme et $HOME=/home/willerme
Si tu es connecté ent tant que
$USER=root comme le laisse entendre l’invocation de apt-get, le .bashrc de /root est lu.
comme $USER=willerme en passant en root à coup de “sudo” ou “su” avec option le .bashrc en /root n’est pas lu mais celui de $HOME.

Il faut fermer bash et le relancer pour que les changements s’opèrent.

Tu as vérifié que ton interpréteur est bien bash ?
Peut-être que tu as mis un #!/bin/sh et que tu as installé dash…