shell bash终端中输出的颜色和格式详解(超详细)
文章目錄
1) 格式1.1 Set1.2 Reset2)8/16 Colors2.1 前景(文字)2.2 背景3)88/256顏色3.1 前景(文字)3.2 背景色4)組合屬性5)終端兼容性6)示例程序6.1 Colors and formatting (16 colors)6.2 256 colors參考
ANSI/VT100終端和終端仿真器不只是能夠顯示黑色和白色文本; 由于轉義序列,它們可以顯示顏色和格式化文本。這些序列由Escape字符(通常用“^[” 或"<Esc>"表示)組成,后跟一些其他字符:“<Esc>[FormatCodem”。
在Bash中,可以使用以下語法獲取字符:
e
33
x1B
例子:
| 代碼(Bash) | Preview |
|---|---|
| echo -e “ e [31mHello World e [0m” | |
| echo -e “ 033 [31mHello e [0m World” |
注意:
該命令的-e選項echo啟用轉義序列的解析。
"e[0m"序列刪除所有屬性(格式和顏色)。在每個彩色文本的末尾添加它是個好主意。;)
本頁中的示例使用Bash,但ANSI/VT100轉義序列可用于各種編程語言。
1) 格式
1.1 Set
| code | Description | Example | Preview |
|---|---|---|---|
| 1 | 粗體/高亮 | echo -e “Normal e [1mBold” |
|
| 2 | 變暗 | echo -e “Normal e [2mDim” |
|
| 4 | 下劃線 | echo -e “Normal e [4mUnderlined” |
|
| 5 | 閃爍 | echo -e “Normal e [5mBlink” |
|
| 7 | 反轉(反轉前景色和背景色) | echo -e “Normal e [7minverted” |
|
| 8 | 隱藏(對密碼有用) | echo -e “Normal e [8mHidden” |
1.2 Reset
| Code | Description | Example | Preview |
|---|---|---|---|
| 0 | 重置所有屬性 | echo -e “e[0mNormal Text” | |
| 21 | 重置粗體/高亮 | echo -e “Normal e[1mBold e[21mNormal” | |
| 22 | 重置變暗 | echo -e “Normal e[2mDim e[22mNormal” | |
| 24 | 重置下劃線 | echo -e “Normal e[4mUnderlined e[24mNormal” | |
| 25 | 重置閃爍 | echo -e “Normal e[5mBlink e[25mNormal” | |
| 27 | 重置反顯 | echo -e “Normal e[7minverted e[27mNormal” | |
| 28 | 重置隱藏 | echo -e “Normal e[8mHidden e[28mNormal” |
2)8/16 Colors
2.1 前景(文字)
以下顏色適用于大多數終端和終端仿真器2), 請參閱兼容性列表以獲取更多信息。
顏色可能因終端配置而異。
| Code | Color | Example | Preview |
|---|---|---|---|
| 39 | 默認前景色 | echo -e “Default e [39mDefault” | |
| 30 | 黑色 | echo -e “Default e [30mBlack” | |
| 31 | 紅色 | echo -e “Default e [31mRed” | |
| 32 | 綠色 | echo -e “Default e [32mGreen” | |
| 33 | 黃色 | echo -e “Default e [33mYellow” | |
| 34 | 藍色 | echo -e “Default e [34mBlue” | |
| 35 | 品紅 | echo -e “Default e [35mMagenta” | |
| 36 | 青色 | echo -e “Default e [36mCyan” | |
| 37 | 淺灰 | echo -e “Default e [37mLight grey” | |
| 90 | 深灰色 | echo -e “Default e [90mDark grey” | |
| 91 | 紅燈 | echo -e “默認 e [91mLight red” | |
| 92 | 淺綠色 | echo -e “Default e [92mLight green” | |
| 93 | 淡黃色 | echo -e “Default e [93mLight yellow” | |
| 94 | 淺藍 | echo -e “Default e [94mLight blue” | |
| 95 | 淺洋紅色 | echo -e “Default e [95mLight magenta” | |
| 96 | 淺青色 | echo -e “Default e [96mLight cyan” | |
| 97 | 白色 | echo -e “Default e [97mWhite” |
2.2 背景
| Code | Color | Example | Preview |
|---|---|---|---|
| 49 | 默認背景顏色 | echo -e “Default e [49mDefault” | |
| 40 | 黑色 | echo -e “Default e [40mBlack” | |
| 41 | 紅色 | echo -e “Default e [41mRed” | |
| 42 | 綠色 | echo -e “Default e [42mGreen” | |
| 43 | 黃色 | echo -e “Default e [43mYellow” | |
| 44 | 藍色 | echo -e “Default e [44mBlue” | |
| 45 | 品紅 | echo -e “Default e [45mMagenta” | |
| 46 | 青色 | echo -e “Default e [46mCyan” | |
| 47 | 淺灰 | echo -e “Default e [47mLight grey” | |
| 100 | 深灰色 | echo -e “Default e [100mDark grey” | |
| 101 | 紅燈 | echo -e “默認 e [101mLight red” | |
| 102 | 淺綠色 | echo -e “默認 e [102mLight green” | |
| 103 | 淡黃色 | echo -e “默認 e [103mLight yellow” | |
| 104 | 淺藍 | echo -e “Default e [104mLight blue” | |
| 105 | 淺洋紅色 | echo -e “Default e [105mLight magenta” | |
| 106 | 淺青色 | echo -e “Default e [106mLight cyan” | |
| 107 | 白色 | echo -e “Default e [107mWhite” |
3)88/256顏色
某些終端(參見兼容性列表)可以支持88或256種顏色。以下是允許您使用它們的控制序列。
注意:顏色編號256僅由vte支持(GNOME終端,XFCE4終端,Nautilus終端,終結者…)。
注意2:88色終端(如rxvt)與256色終端的顏色圖不同。要顯示88色終端顏色映射,請在88色終端中運行“ 256-colors.sh ”腳本。
3.1 前景(文字)
要使用前景中的256種顏色之一(文本顏色),控制序列為“ <Esc>[38;5;ColorNumberm ”,其中ColorNumber是以下顏色之一:
Example:
echo -e "e[38;5;82mHello e[38;5;198mWorld"
for i in {16..21} {21..16} ; do echo -en "e[38;5;${i}m#e[0m" ; done ; echo
3.2 背景色
要在背景上使用256種顏色中的一種,控制序列為“ <Esc>[48;5;ColorNumberm ”,其中ColorNumber是以下顏色之一:
Example:
echo -e "e[40;38;5;82m Hello e[30;48;5;82m World e[0m"
for i in {16..21} {21..16} ; do echo -en "e[48;5;${i}m e[0m" ; done ; echo
4)組合屬性
終端允許屬性組合。屬性必須用分號(“ ;”)分隔。
| Description | Code (Bash) | Preview |
|---|---|---|
| Bold + Underlined | echo -e “e[1;4mBold and Underlined” | |
| Bold + Red forground + Green background | echo -e “e[1;31;42m Yes it is awful e[0m” |
5)終端兼容性
表中使用的符號:
“ ok”:終端支持。
“ ~”:終端以特殊方式支持。
“ -”:終端根本不支持。
6)示例程序
6.1 Colors and formatting (16 colors)
以下shell腳本顯示了許多可能的屬性組合(但不是全部,因為它一次只使用一個格式屬性)。
#!/bin/bash
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.
#Background
for clbg in {40..47} {100..107} 49 ; do
#Foreground
for clfg in {30..37} {90..97} 39 ; do
#Formatting
for attr in 0 1 2 4 5 7 ; do
#Print the result
echo -en "e[${attr};${clbg};${clfg}m ^[${attr};${clbg};${clfg}m e[0m"
done
echo #Newline
done
done
exit 0
6.2 256 colors
以下腳本顯示某些終端和終端仿真器(如XTerm和GNOME Terminal)上可用的256種顏色。
#!/bin/bash
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.
for fgbg in 38 48 ; do # Foreground / Background
for color in {0..255} ; do # Colors
# Display the color
printf "e[${fgbg};5;%sm %3s e[0m" $color $color
# Display 6 colors per lines
if [ $((($color + 1) % 6)) == 4 ] ; then
echo # New line
fi
done
echo # New line
done
exit 0
參考
Linux console codes manual (’‘man console_codes’’)
XTerm Control Sequences
總結
以上是生活随笔為你收集整理的shell bash终端中输出的颜色和格式详解(超详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几种简单的主题模型(生成模型)
- 下一篇: 中缅油气管道建设过程详细介绍