此脚本中设置提示的时间戳在哪里?

jok*_*ker 3 command-line bash scripts prompt ps1

我遇到了这篇旧帖子,我觉得它很有用。现在,我正在努力,但徒劳地告诉它的哪一部分负责在破折号末尾打印时间戳。

为方便参考,脚本如下:

# 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
Run Code Online (Sandbox Code Playgroud)

任何提示?

Zan*_*nna 6

正是\t这一行中的 组成了整个提示,合并了fill已分配的变量(包括给出破折号的变量):

PS1="$status_style"'$fill \t\n'"$prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "
Run Code Online (Sandbox Code Playgroud)

PS1,\t是打印当前时间的Bash 转义序列

测试:

zanna@toaster:~$ PS1="\t"
21:33:06
Run Code Online (Sandbox Code Playgroud)

  • @小丑ikr!提示代码很奇怪。添加了指向众多文档之一的链接(Arch Wiki 很棒,恕我直言)。 (2认同)