como fazer bash prompt mais legível em .bashrc - isso é fazer com a data, mas mesmo em geral

3

Esta é minha .bashrc ou pelo menos a seção que contém o prompt -

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\A\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\d:\A\$ '
fi
unset color_prompt force_color_prompt

Agora, como pode ser visto, meu aviso é -

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\d\A\$ '

Agora, enquanto minha preocupação imediata é se é possível ter um espaço entre a data e a hora

\d\A

como o prompt se parece com algo assim -

shirish@think-debian:~Tue Oct 2001:03$

mais problemático é o fato de que o prompt é ilegível, a menos que eu conheça a sintaxe. Há alguma maneira de consertar isso?

    
por shirish 19.10.2015 / 21:33

3 respostas

4

Você pode acumular o valor aos poucos, comentando ao longo do caminho

PS1='\u@\h:'   # User@Host:
PS1+='\w'      # Working directory
PS1+='\d'      # date
PS1+=' '
PS1+='\A'      # Time
PS1+='\$ '     # Marker
    
por 21.10.2015 / 05:34
3

Now while my immediate concern is if it's possible to have a space between the date and time

Sim. Coloque um espaço entre a data e a hora:

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\d \A\$ '

more problematic is the fact that the prompt is unreadable unless I know the syntax. Is y there a way to fix that ?

Você pode adicionar texto arbitrário ao seu prompt da maneira que quiser:

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w date:\d time:\A\$ '
    
por 19.10.2015 / 21:38
3
PS1='\u@\h:\w \d \A\$ '

indo a extremos de legibilidade:

declare -A prompt=(
    [user]='\u'
    [host]='\h'
    [dir]='\w'
    [date]='\d'
    [time]='\A'
    [prompt]='\$ '
)
PS1="${prompt[user]}@${prompt[host]}:${prompt[dir]} ${prompt[date]} ${prompt[time]} ${prompt[prompt]}"
    
por 19.10.2015 / 22:09