
私はUbuntuを使っていて、bash
シェルプロンプトの色を手動で変更することができます緑使用して
export PS1="\e[0;32m[\u@\h \W]\$ \e[m"
ただし、新しいターミナルまたはタブを開くたびに、シェル プロンプトの色が自動的に変更されるようにしたいと考えています。基本的な tty TERM には 16 色があり、16 を超えるターミナルが開いている場合は色を回転しても問題ないことはわかっています。このソリューションはPutty
、、tmux
またはを介して接続する場合にも機能しますかscreen
。
私のアイデアは、ユーザーが開いた新しいターミナル セッションを検出し、グローバル カウンターを から に増やすスクリプトを記述しshell
て に配置することです。ユーザーが開いたターミナルの数を検出するにはどうすればよいでしょうか。.bashrc
\e[0;31m[
\e[0;47m[
答え1
ターミナルの数を数える (例: who - a | grep user | wc -l
) は機能しません。1 つまたは複数のシェルが閉じられると、合計数が減少し、新しいターミナルがすでに開かれている別のターミナルと一致する可能性があります。
単純にカウンターを用意するだけです:
全体で 6 色にしたい場合:
touch ~/.colornumber
new=$(awk '(NR==1) { print ($1 + 1) % 6; }' ~/.colornumber)
echo $new > ~/.colornumber
#and use color number $new for your current terminal, for example defined in an array of 6 entries.
# just note here that color 0 is for the 6th terminal, not the first... or change the awk above