LINUX.ORG.RU

Controlling the width of $PWD


0

0

Контроль длины пути к текущему каталогу без вызова внешних
утилит, сделано с использованием новых возможностей 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
-------------------------------------------

>>> Просмотр (438x407, 37 Kb)



Проверено:

Re: Controlling the width of $PWD

ha!
here is cut from my .zshrc

--8<--
PROMPT='[%{^[[32m%}%T%{^[[0m%}] %(?..[%{^[[31m%}%B%?%{^[[0m%}%b])
%(#.%{^[[1;31m%}.%{^[[33m%})%n%{^[[0m%}@%m %B%30<..<%~%b %h%# '
--8<--

Use real shell! :)

ivlad ★★★★★ ()

Re: Controlling the width of $PWD

Wow! It's really c001!

anonymous ()

Re: Controlling the width of $PWD

2 oxonian:
Хех... а насколько это дело читабельно? ;-)

eXOR ★★★★★ ()

Re: Controlling the width of $PWD

Можно добавить нижеследующее в /etc/bashrc, чтобы цвет приглашения отличался на root'овой и обычной консолях.

PS1='\h:\w/\$ ' # Создадим цветное приглашение [ "$UID" = "0" ] && COn="$(tput bold)$(tput setaf 1)" || COn=$(tput bold) COff=$(tput sgr0) PS1="\\[$COn\\]$PS1\\[$COff\\]"

_____ ВЛ

anonymous ()

Re: Controlling the width of $PWD

Пардон!
Не совладал с форматированием.

PS1='\h:\w/\$ '
# Создадим цветное приглашение
[ "$UID" = "0" ] && COn="$(tput bold)$(tput setaf 1)" || COn=$(tput bold)
COff=$(tput sgr0)
PS1="\\[$COn\\]$PS1\\[$COff\\]"

_____
ВЛ

anonymous ()

Re: Controlling the width of $PWD

это вовсе не кул, а помехи в линиях связи на модемах без коррекции!

очень не люблю среды, не удосуживающиеся показывать hint-ы и описание текущей выбранной операции (например, в одну строчку). этим печально известен vi, а лишен таких недостатков xemacs :)

anonymous ()
Ответ на: Re: Controlling the width of $PWD от eXOR

Re: Re: Controlling the width of $PWD

> Хех... а насколько это дело читабельно?
pri opredelennom opyte - chitabel'nost' sravnimas obychnym shell-scriptom.
Tut na samom dele nichego slozhnogo net.

ivlad ★★★★★ ()

Re: Controlling the width of $PWD

2ВЛ

Всё так, но только tput - внешняя программа, а не builtin. Slows значит considerably...

lowry ()

Re: Controlling the width of $PWD

2lowry

Однако, bashrc зачитывается только при старте shell'а.
Дальше (до выхода из shell) для перерисовки PS1 используется уже
определенная последовательность.
_____
ВЛ

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.