几天前,我安装了我的第一个双启动 Linux。当我自定义终端时,我遇到了这个问题。虽然转义在变量中可以正常工作PS1
,但在变量中却不起作用HISTTIMEFORMAT
。
WHITE="\e[97m"
BOLD="\e[1m"
RESET="\e[0m"
PS1="$BOLD[\A - @\h:$WHITE\W\e[m]\n\\$ $RESET"
HISTTIMEFORMAT="$WHITE[%F %T] $RESET"
解决此问题的一种方法是使用echo
如下-e
方法
HISTTIMEFORMAT=`echo -e $WHITE[%F %T] $RESET`
但我还是想知道为什么第一种方法不起作用?
答案1
你得到的是相反的:一些转义序列被解释为PS1
(参见 Bash 手册,6.9 控制提示)。这对于提示变量来说是特殊的,其他变量不会得到相同的处理。
HISTTIMEFORMAT
仅用作 的输入strftime(2)
,它对这些转义序列一无所知。因此,您需要其他东西来解释转义序列(例如echo
,在本例中)。