Colors

KornShell 中的彩色提示

  • November 15, 2018

根據這個 StackOverflow 文章,在 KornShell 中可能有一個彩色提示。我一直無法弄清楚如何做到這一點。我可以使用顏色:

echo -e "\033[34mLinux\033[00m"

給出藍色的“Linux”輸出,如下所示:

printf "\033[34mLinux\033[00m"

但是,當我將轉義碼合併到PS1提示變數中時,它們並沒有被轉義。我需要做什麼才能獲得彩色提示?除了作為一種吸引眼球的東西之外,我發現在視覺解析輸出時,彩色提示很有用。

只需使用文字 Esc 字元,輸入Ctrl- vEsc(將顯示^[在螢幕上):

PS1="^[[34mLinux^[[00m"

或者使用echo您發現有效的命令的輸出:

PS1="$(echo -e "\033[35mLinux\033[00m")"

您需要在PS1變數中放置一個文字轉義字元。Ksh88 和 pdksh 和 mksh 等複製(舊版本)沒有控製字元的文字語法,除非通過print內置。Mksh 理解\e轉義,但 pdksh 需要八進制程式碼\033

PS1=$(print '\033[34mLinux\033[00m')

ATT ksh93 引入了反斜杠轉義的文字語法$'…'(自 R39b 起在 mksh 中也可用)。您可以使用反斜杠轉義將控製字元放入這些文字中。

PS1=$'\e[34mLinux\e[00m'

引用自:https://unix.stackexchange.com/questions/42399