web-dev-qa-db-fra.com

Comment garder la coloration en bash avec Sudo -i?

J'ai changé la variable PS1 dans /etc/bash.bashrc en

PS1="\n\[\033[0;37m\]\342\224\214\342\224\200\$(if [[ \$? == 0 ]]; then echo \"[\[\033[0;32m\]\[\033[01;32m\]\342\234\223\[\033[0;37m\]]\342\224\200\"; else echo \"[\[\033[0;32m\]\[\033[01;31m\]\342\234\227\[\033[0;37m\]]\342\224\200\"; fi)[$(if [[ ${EUID} == 0 ]]; then echo '\[\033[0;31m\]\h'; else echo '\[\033[0;33m\]\u\[\033[0;37m\]@\[\033[0;96m\]\h'; fi)\[\033[0;37m\]]\342\224\200[\[\033[0;32m\]\w\[\033[0;37m\]]\n\[\033[0;37m\]\342\224\224\342\224\200\342\224\200\342\225\274 \[\033[0m\]"

Ce qui fonctionne bien avec toutes les commandes. Mais lorsque je lance la commande Sudo -i, la valeur PS1 passe à la valeur par défaut. Pour récupérer le jeu de couleurs, je dois exécuter PS1=<same value> manuellement. Une idée de ce qui pourrait causer ce comportement?

3
Neeraj Gangwar

Ajoutez la ligne _PS1_ à _/root/.bashrc_.

La raison pour laquelle la couleur retourne à la couleur par défaut est que parce que lorsque vous faites _Sudo -i_, il "simule" une connexion root, puis à la source (s'applique) root's _.bashrc_, ce qui ramène la couleur à la valeur par défaut. . Donc, ajouter la ligne _PS1_ à la racine _.bashrc_ devrait faire l'affaire.

3
Alaa Ali