web-dev-qa-db-ja.com

`Sudo -i`を使用している場合、bashで色を維持する方法は?

/etc/bash.bashrcのPS1変数を

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\]"

これはすべてのコマンドで問題なく動作します。しかし、Sudo -iコマンドを実行すると、PS1値はデフォルトになります。カラースキームを取り戻すには、PS1=<same value>を手動で実行する必要があります。この動作を引き起こしている可能性のあるアイデアはありますか?

3
Neeraj Gangwar

PS1行を/root/.bashrcに追加します。

色がデフォルトに戻る理由は、Sudo -iを実行すると、ルートログインを「シミュレート」し、次にルートの.bashrcをソース(適用)して、色をデフォルトに戻すためです。 。そのため、ルートのPS1.bashrc行を追加するとうまくいきます。

3
Alaa Ali