$PWD в приглашении Bash

Довольно удобно иметь в приглашении Bash полный путь до текущей директории. Но порой этот путь становится настолько длинным, что просто забивает собой всю ширину окна терминала.. Вот способ победить это неудобство

Добавьте этот код в ваш ~/.bashrc

function truncate_pwd
{
if [ $HOME == $PWD ]
then
newPWD=”~”
elif [ $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=truncate_pwd
PS1=”${ttyname}@\[${HOST_COLOUR}\]\h\[${RESET_COLOR}\]:\${newPWD}\\$ “


 

Система Orphus

 


 

Comments: 3

  1. Portnov February 5th, 2008 at 9:11 am

    Можно еще так, скажем
    export PS1=”\W\$ ”
    Будет показывать только имя текущей директории, без пути.

  2. go February 8th, 2008 at 12:35 am

    Очепятка:
    не newPWD=”.+${newPWD:$pwdoffset:$pwdmaxlen}”, а
    newPWD=”.”+”${newPWD:$pwdoffset:$pwdmaxlen}”
    Вотъ.

  3. anon September 13th, 2008 at 8:37 pm

    работающая в rhel5 и centos5 версия:

    function truncate_pwd
    {
    if [ $HOME == $PWD ]
    then
    newPWD=”~”
    elif [ $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=truncate_pwd
    PS1=\[\${newPWD}\]\\$\

Add a Comment