Controlling the width of $PWD Контроль длины пути к текущему каталогу без вызова внешних
утилит, сделано с использованием новых возможностей bash-2.0

А вот и сам код. Кладётся в ~/.bashrc

-------------------------------------------
# how many characters of the $PWD should be kept
function cut_pwd
{
if [ $HOME == ${PWD:0:${#HOME}} ]
then
newPWD="~${PWD:${#HOME}}"
else
newPWD=$PWD
fi

local pwdmaxlen=15
if [ ${#newPWD} -gt $pwdmaxlen ]
then
local pwdoffset=$(( ${#newPWD} - $pwdmaxlen ))
newPWD=".+${newPWD:$pwdoffset:$pwdmaxlen}"
fi

}
PROMPT_COMMAND=cut_pwd
PS1="${ttyname}@\h:\${newPWD}\\$ "

# run once at startup
cut_pwd
-------------------------------------------