當前位置: 首頁>>技術問答>>正文


怎麽做:Gnome終端的下劃線,粗體,斜體,刪除線,顏色,背景和大小?

, , , ,

問題描述

怎麽做:Gnome終端的下劃線,粗體,斜體,刪除線和顏色?

膽大

斜體

強調

s̶̶̶̶̶̶̶̶̶̶̶̶̶

Color

background

font< (如果你不知道它的單聲道)

size

最佳解決方法

The ANSI/VT100 terminals and terminal emulators are not just able to display black and white text; they can display colors and formatted texts thanks to escape sequences. Those sequences are composed of the Escape character (often represented by “^[” or “Esc”) followed by some other characters: “Esc[FormatCodem”.

在Bash中,可以使用以下語法獲取字符:

\e
\033
\x1B

command-line,bash,gnome-terminal,scripts,ubuntu

命令(方便copy-paste):

echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"

源(包括所有類型的前景/背景顏色代碼):http://misc.flogisoft.com/bash/tip_colors_and_formatting

次佳解決方法

為了擴展Sylvain的答案,一些輔助函數:

ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
bold()          { ansi 1 "$@"; }
italic()        { ansi 3 "$@"; }
underline()     { ansi 4 "$@"; }
strikethrough() { ansi 9 "$@"; }
red()           { ansi 31 "$@"; }

然後

command-line,bash,gnome-terminal,scripts,ubuntu

第三種解決方法

尚未涵蓋的東西是兩個或三個參數的組合,例如: G。以預定義顏色加粗和下劃線。這是通過3種語法實現的,例如:

~$ printf "\e[3;4;33mthis is a test\n\e[0m"

將導致“這是一個測試”以黃色(33m),斜體(3m)和下劃線(4m)打印。請注意,不必每次都重複\e[。另請注意(與Sylvain相似)我每次都添加了一個\e[0m來重置設置,否則黃色和字體樣式將在終端中保持活動狀態!毋庸置疑,您必須注意這些在腳本中重置,因為如果您的腳本永久修改終端中的顏色+樣式設置,使用您的腳本的用戶可能會不喜歡它!

第四種方法

GNOME終端3.28(VTE 0.52),在Ubuntu 18.04 LTS上首次亮相,增加了對更多樣式的支持,包括在Kitty中看到的 curl 和彩色下劃線,在Konsole中看到的上線,最後每個人都非常喜歡或非常討厭blink屬性。

考慮到VTE至少為版本0.52,這些也可以自動在任何其他VTE-based終端仿真器(例如Tilix,終結器,Xfce4終端,Guake等)中工作。

這是一個列表,演示了標準的轉義序列,以及GNOME Terminal’s (VTE’s)的補充。請注意,對於每個打開序列,我還僅顯示該屬性的關閉序列,而不是禁用所有特殊模式的通用\e[m\e[0m

echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'

echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'

echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'

echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'

(*)下劃線的真彩色值略微近似。

並且有點奇怪的不適合這張圖片,因為它更像是一種功能而不是風格,但在這裏可能值得一提,hyperlink支持co-designed和iTerm2,自GNOME終端3.26(VTE 0.50)起可用:

echo -e '\e]8;;http://askubuntu.com\e\\hyperlink\e]8;;\e\\'

這是顯示結果的屏幕截圖:

command-line,bash,gnome-terminal,scripts,ubuntu

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/1868.html,未經允許,請勿轉載。