web-dev-qa-db-fra.com

Où se trouve l'horodatage dans ce script qui définit l'invite?

Je suis tombé sur cet ancien post , que je trouve utile. Maintenant, j'essaie fort, mais en vain, de dire quelle partie de celle-ci est responsable de l'impression de l'horodatage à la fin des tirets.

Ce qui suit est le script pour plus de facilité:

# Fill with minuses
# (this is recalculated every time the Prompt is shown in function Prompt_command):
fill="—- "
reset_style='\[\033[00m\]'
status_style=$reset_style'\[\033[0;90m\]' # gray color; use 0;37m for lighter color
Prompt_style=$reset_style
command_style=$reset_style'\[\033[1;29m\]' # bold black

# Prompt variable:
PS1="$status_style"'$fill \t\n'"$Prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "

# Reset color for command output
# (this one is invoked every time before a command is executed):
trap 'echo -ne "\e[0m"' DEBUG

function Prompt_command {
    # create a $fill of all screen width minus the time string and a space:
    let fillsize=${COLUMNS}-9
    fill=""
    while [ "$fillsize" -gt "0" ]
    do
        fill="-${fill}" # fill with underscores to work on
        let fillsize=${fillsize}-1
    done

    # If this is an xterm set the title to user@Host:dir
    case "$TERM" in
    xterm*|rxvt*)
        bname=`basename "${PWD/$HOME/~}"`
        echo -ne "\033]0;${bname}: ${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"
        ;;
    *)
        ;;
    esac
}

Prompt_COMMAND=Prompt_command

Un indice?

3
joker

C'est le \t dans cette ligne qui compose l'Invite complète, en incorporant les variables (y compris fill qui donne les tirets) qui ont été attribuées:

PS1="$status_style"'$fill \t\n'"$Prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "

Dans PS1, \t est un séquence d'échappement Bash qui affiche l'heure actuelle.

Tester:

zanna@toaster:~$ PS1="\t"
21:33:06
6
Zanna