我的.bashrc
PS1
(删节)是
\u\[\e[01;3$(($RANDOM % 8))m\]@\h \w $'
使用 bash 的工作方式,它会在每个命令之后插入随机颜色,因此每次@
都是不同的颜色(至少在 31-37 范围内)。
但是,我一直无法在 zsh 中做类似的事情。该$''
语法不允许命令替换,并且连接也不起作用:
$'\e[01;3'$(($RANDOM % 8))
# The \e[01;3 character is printed first, then the random number
使用引号"
也不起作用;它只是打印出一个文字\e...
我知道 zsh 也有一些内置的文本颜色,例如%{$fg[red]%}
,我可以以某种方式从数组中选择一种随机颜色,但问题是它需要由 随机选择,PS1
而不仅仅是在启动时随机选择只有一次。
有什么办法可以在 zsh 的 PS1 中插入一个随机数来实现这一点?