Различное начальное приглашение BASH

Различное начальное приглашение BASH

Это своего рода косметический (и тривиальный) вопрос, но я полагаю, что он может быть полезен и другим, а не мне. Я экспериментировал с переменной $PS1 в моем ~/.bashrc, и мне было интересно, есть ли способ сделать так, чтобы первое приглашение немного отличалось от всех остальных приглашений. Если говорить точнее, то пока что я сделал следующее:

PS1='\n\[\e[0;37m\][\[\e[0;35m\]\t\[\e[0;37m\]] \[\e[0;36m\]\u@\h \[\e[0;37m\][\[\e[1;34m\]\W\[\e[0;37m\]] \[\e[0;36m\]\$ \[\e[0m\]'

но я не хочу, чтобы новая строка в начале отображалась в первом приглашении (и я мог бы расширить это, чтобы первое приглашение включало больше информации и т. д.). Я использую gnome-terminal, если это имеет значение.

Возможно ли это вообще? И если да, то как?

решение1

Один из способов сделать это — использовать PROMPT_COMMAND bash. Например, вы можете поместить следующее в ваш ~/.bashrc (или выполнить его в командной строке, пока вы экспериментируете).

set_ps()
{
    if [ -z "$PSFLAG" ]
    then
        # Set first prompt
        PS1='first prompt: '
        PSFLAG=1
    else
        # Set other prompt
        PS1='other prompt: '
    fi
}
PROMPT_COMMAND=set_ps

решение2

Если вы хотите, чтобы некоторые символы выводились до первой подсказки и никогда больше, почему бы вам просто не .bashrcвывести их?

Связанный контент