Shell 如何修改PS1以在最右角显示时间?

Shell 如何修改PS1以在最右角显示时间?,shell,ps1,Shell,Ps1,当前显示如下 export PS1='${white}[\t] ${blue}\W:${red}$(__git_ps1)${white} \$ ' 我想用相同的设置进行实验,但时间显示在最右角 如何修改我的PS1导出以实现此目的,请?不要认为有任何方法可以在bash中使用PS1对提示符上的项目进行右对齐(不过,在zsh中很容易做到这一点)。您可以尝试为PROMPT\u命令环境变量编写一个函数,并让它以右对齐方式打印时间,如下所示: print_pre_prompt () { TIME

当前显示如下

export PS1='${white}[\t] ${blue}\W:${red}$(__git_ps1)${white} \$ '

我想用相同的设置进行实验,但时间显示在最右角


如何修改我的
PS1
导出以实现此目的,请?

不要认为有任何方法可以在bash中使用
PS1
对提示符上的项目进行右对齐(不过,在zsh中很容易做到这一点)。您可以尝试为
PROMPT\u命令
环境变量编写一个函数,并让它以右对齐方式打印时间,如下所示:

print_pre_prompt ()
{
    TIME=`date +%H:%M`
    printf "\e[1;37m%$(($COLUMNS))s" "${TIME}"
}
PROMPT_COMMAND=print_pre_prompt

在这里,
\e[1;37m
是“白色”的颜色。

这是您的输出提示在寻找的吗


导出PS1=“\u@\w[\$(日期+%k:%M:%S)]>”

我认为这限制了当前行上的时间显示?如果我们想在右下角显示时间,我们需要
保存光标
恢复光标
终端功能。这正是我要找的。谢谢。任何可能的时间都可以出现在提示的同一行上?@Jam如果有办法,那就超出了范围我的bash-fu。我认为即使在zsh中,也存在将其放在同一行(内置RPS1)的问题,因为如果命令足够长,光标将开始覆盖它