Мне понравилась тема приглашения adam2 из zsh и возникла мысль портировать её на bash. Предлагаю вашему вниманию первую версию (доделывать есть что). Перенесено свойство сохранять ширину при смене текущего каталога/юзернейма/хостнейма. При выводе текущего каталога не происходит подстановка «~» вместо $HOME (постараюсь пофиксить). Не предусмотрена ситуация возможной нехватки места в первой строке (временно, я думаю). Исполнение не безупречно с точки зрения качества кода - одни глобальные переменные для цветов тянут на расстрел ;-) (в оригинале, впрочем, тоже костыли имеются).
Сам код (добавьте в ~/.bashrc, закомментировав свой PS1):
C1='\e[36m';
C2='\e[36;1m'
C3='\e[32;1m'
C4='\e[30;1m'
C5='\e[37;1m'
C6='\e[0m'
function prompt_adam2(){
WHOAMI=$(whoami);
HOSTNAME=$(hostname);
PWD_LEN=$((`expr length "$PWD"`+2));
USER_AT_HOST_LEN=$(($(expr length ${WHOAMI})+$(expr length ${HOSTNAME})+3));
WIDTH=$(tput cols);
DASHES=$((${WIDTH}-${USER_AT_HOST_LEN}-${PWD_LEN}-3));
PROMPT=( ${C2}.${C6}${C1}-${C6}${C4}\(${C6}${C3}${PWD}${C6}${C4}\)${C6}${C1}\
$(for (( i=1; i<=$DASHES; i++)); do echo -n '-'; done)\
${C6}${C4}\(${C6}${C1}$(whoami)${C6}${C2}@${C6}${C1}$(hostname)\
${C6}${C4}\)${C6}${C1}-${C6} );
echo -en ${PROMPT[@]}
}
export PROMPT_COMMAND=prompt_adam2;
export PS1=${C2}"'"${C6}${C2}-${C6}${C1}-${C6}${C5}'> '${C6};
Надеюсь, кому-нибудь пригодится :-)