我已按照以下方式自定义提示:
PS1="\e[0;34m\u\e[m@\e[0;31m\h\e[m: \e[0;33m${PWD##*/}\e[m$: "
这是显示结果的图像:
我对它很满意并且它与sh,bash和zsh一样有效。但是,一旦切换到" ksh"它给了我这个提示:
e[0;34mue[m@e[0;31mhe[m: e[0;33ma922100e[m$:
无论我运行的是什么shell,如何让格式化工作"全局"?
答案 0 :(得分:0)
由于在初始化PS1时扩展了双引号内的${PWD##*/}
,因此在更改目录时您的提示未被更新。
有很多方法可以解决它,根据ksh版本可能会有以下工作。
csi=$'\e['
# or
# csi=$(printf '\e[')
PS1="${csi}0;34m$(whoami)${csi}m@${csi}31m$(hostname)${csi}m: ${csi}33m"'${PWD##*/}'"${csi}m$: "