Я столкнулся с этим старым сообщением, которое я считаю полезным. Теперь я стараюсь, но напрасно, чтобы сообщить, какая часть из них отвечает за печать метки времени в конце тире.
Ниже приведен скрипт для упрощения ссылки:
# 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
Любой намек?
Это \t в этой строке, которая составляет все приглашение, включая переменные (в том числе fill, которые дают тире), которые были назначены:
PS1="$status_style"'$fill \t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "
В PS1 \t - это escape-последовательность Bash, которая печатает текущее время.
Тест:
zanna@toaster:~$ PS1="\t"
21:33:06
Это \t в этой строке, которая составляет все приглашение, включая переменные (в том числе fill, которые дают тире), которые были назначены:
PS1="$status_style"'$fill \t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "
В PS1 \t - это escape-последовательность Bash, которая печатает текущее время.
Тест:
zanna@toaster:~$ PS1="\t"
21:33:06
Это \t в этой строке, которая составляет все приглашение, включая переменные (в том числе fill, которые дают тире), которые были назначены:
PS1="$status_style"'$fill \t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "
В PS1 \t - это escape-последовательность Bash, которая печатает текущее время.
Тест:
zanna@toaster:~$ PS1="\t"
21:33:06