Kaz*_*ark 11 colors prompt ksh
根据这个 StackOverflow 帖子,在 KornShell 中可能有一个彩色提示。我一直无法弄清楚如何做到这一点。我可以使用颜色:
echo -e "\033[34mLinux\033[00m"
Run Code Online (Sandbox Code Playgroud)
给出蓝色的“Linux”输出,如下所示:
printf "\033[34mLinux\033[00m"
Run Code Online (Sandbox Code Playgroud)
但是,当我将转义码合并到我的PS1
提示变量中时,它们并没有被转义。我需要做什么才能获得彩色提示?除了对 eyecandy 的吸引力之外,我发现彩色提示在视觉解析输出时很有用。
man*_*ork 11
只需使用文字 Esc 字符,输入Ctrl- v, Esc(将显示^[
在屏幕上):
PS1="^[[34mLinux^[[00m"
Run Code Online (Sandbox Code Playgroud)
或者使用echo
您发现正在运行的命令的输出:
PS1="$(echo -e "\033[35mLinux\033[00m")"
Run Code Online (Sandbox Code Playgroud)
您需要在PS1
变量中放置一个文字转义字符。Ksh88 和诸如 pdksh 和 mksh(旧版本)之类的克隆没有控制字符的文字语法,除了通过print
内置的。Mksh 理解\e
转义,但 pdksh 需要八进制代码\033
。
PS1=$(print '\033[34mLinux\033[00m')
Run Code Online (Sandbox Code Playgroud)
ATT ksh93 引入了反冲转义的文字语法$'…'
(自 R39b 起也可用于 mksh)。您可以使用反斜杠转义将控制字符放入这些文字中。
PS1=$'\e[34mLinux\e[00m'
Run Code Online (Sandbox Code Playgroud)