kot

d11he11


i-t-шные заметки

Teach Yourself Programming in Ten Years


Previous Entry Поделиться Next Entry
bash prompt с человеческим лицом
kot
d11he11
Давненько я не твикал свой bash prompt. Вот недавно увидел прикольную фичу.
Часто в приглашении выводится значение, которое вернула последняя команда. Можно пойти дальше, и вместо числа выводить ":)" при успешном завершении и ":(" при неуспешном. (Более экспрессивный вариант: ^_^ и O_O). Для этого в PS1 можно вставить такую функцию:

function smiley () {
    local status=$?  
    if [ $status -eq 0 ]; then
        echo ':)'             
    else                      
        echo ":( $status"     
    fi                        
}           
Пример PS1 (вместо $COLOR* надо подставить последовательности для нужного цвета):

PS1="$COLOR1\$(smiley) \u@\h $COLOR2\w \$ $JOBS_COLOR\$(printJobs)$NO_COLOR"
 
Выглядит это примерно так:

:) doer@coyote /usr/home/doer $ (j:3)

Можно смайлики выводить разными цветами, наподобие этого:

PS1="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\` \u@\h $COLOR2\w \$ $JOBS_COLOR\$(printJobs)$NO_COLOR"

Улучшения/предложения приветствуются.
Метки: ,

  • 1
1) баш под бсд нитру :)
2) полный путь в промпте - ацкий ацтой, если у тебя не 22" вайдскрин; особливо доставляет, когда шаришся где-нить в дебрях юзерских сайтов (ну или бинда в чруте)

1) Дефолтовый csh тоже особо не радует. Например очень своеобразно в prompt-е показывается кол-во задач.
2) PROMPT_DIRTRIM=8

ты просил рекомендации по улучшению, я их дал, глядя со своей колокольни :)
дефолтовый сишелл вообще запредельно убог. чего стоит хотя бы отсутствие поддержки изкоробки home/end/del.

  • 1
?

Log in