A contagem dos terminais (ex: who - a | grep user | wc -l
) não funcionará: quando uma ou shell está fechada, o número total diminui e o novo terminal pode coincidir com outro já aberto.
Você deve simplesmente ter um contador:
Se você quiser 6 cores no total:
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