
カスタムカラーを設定するように設定しgnome-terminal
ました:.bashrc
PS1='${debian_chroot:+($debian_chroot)}\[\033[00;37m\][\[\033[00;32m\]\t\[\033[00;37m\]] \[\033[01;34m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[00;37m\]:\[\033[01;34m\]\w\[\033[01;32m\]$ '
つまり、次のようなものを実行すると、
最初の行は白であるべきで、入力したコマンドも緑色になるまでは白でしたが、出力は次のようになります。
では、コマンドの色を緑に設定しても、出力テキストの色が影響を受けないようにするにはどうすればよいでしょうか? 私は Ubuntu GNOME 15.04 と GNOME 3.16 を実行しています。
情報更新:
sudo rkhunter --nocolor --update
実行時に出力がすべて緑色になることに気付きました。
答え1
問題は、コマンドを緑色に設定しているが、カラーエスケープコードを閉じていないことです。そのため、独自の書式設定が適用されていないコマンドの出力を含む、後続のすべての行がその色で表示されます。回避策として(ソース)、trap
DEBUGシグナルにクローズコードを出力することができます。この行を~/bashrc
trap 'printf "\e[0m" "$_"' DEBUG
これは印刷されます\e[0m
(開いているカラー コードが閉じられます)。これはシグナルtrap
に ped されるためDEBUG
、実行するコマンドの前に実行されます。つまり、ヒットしてから実際にコマンドが実行されるまでの間ですEnter。 で説明されているようにman bash
:
sigspec が DEBUG の場合、コマンド arg は、すべての単純コマンド、for コマンド、case コマンド、select コマンド、すべての算術 for コマンドの前、およびシェル関数で最初のコマンドが実行される前に実行されます (上記のシェルの文法を参照)。