如何为每个新打开的终端设置不同的shell提示符颜色

如何为每个新打开的终端设置不同的shell提示符颜色

我正在使用 Ubuntu,可以手动将bashshell 提示符颜色更改为绿色的使用

export PS1="\e[0;32m[\u@\h \W]\$ \e[m"

但是,我希望每次打开新终端或选项卡时,shell 提示符颜色都会自动更改。我知道基本 tty TERM 有 16 种颜色,如果打开了超过 16 个终端,可以旋转颜色。当我通过 、 或 连接时,该解决方案是否Puttytmux有效screen

我的想法是编写一个shell脚本并将其放置在.bashrc检测用户打开的新终端会话中,并将全局计数器从 增加到\e[0;31m[\e[0;47m[如何检测用户打开的终端数量?

答案1

计算终端(例如who - a | grep user | wc -l:)将不起作用:当一个或多个外壳关闭时,总数会减少,新的终端可能会与另一个已经打开的终端匹配。

你应该有一个计数器:

如果你想要总共 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

相关内容