Bash:在 PS1 中打印不可见的时间戳

Bash:在 PS1 中打印不可见的时间戳

我现在的 PS1 是这样的:

╭dotfiles
╰(ivan)•

我想为其添加一个不可见的时间戳,这样当我想查看命令运行的时间时,我可以用光标选择/突出显示它,但不会扰乱我的正常视图。

╭dotfiles 10:24:01
╰(ivan)•

现在我有:

PS1='╭\033[1m\W\033[0m\n╰(\u)• '

假设我的背景颜色是黑色,我可以使用黑色的 ANSI 颜色代码 ( \033[0;30m) 来不可见地打印时间戳:

PS1='╭\033[1m\W\033[0m \033[0;30m\t\033[0m\n╰(\u)• '

但我的背景并不总是黑色——我有几种颜色方案可供切换。

理想情况下,我想从终端动态获取背景颜色,但这可能/可行吗?或者也许我可以采取另一种方法?


编辑

有人正确地指出 ANSI 颜色代码应包含在\[和之间\]。所以上面的设置实际上应该是:

PS1='╭\[\033[1m\]\W\[\033[0m\]\n╰(\u)• '

PS1='╭\[\033[1m\]\W\[\033[0m\] \[\033[0;30m\]\t\[\033[0m\]\n╰(\u)• '

相关内容