在 terminal 中我們常會希望一些輸出可以帶有顏色,例如: shell prompt, motd 等,除了賞心悅目,方便我們閱讀,也更快速聚焦到重點的部分
本篇介紹如何在 terminal 中使用色碼輸出
這是我們用來輸出色碼的序列,由 ESC 開頭
而 ESC 是一個 Escape character,一般 bash 中有三種方式可以編碼
\e\0x1B\033
而 ESC 輸出通常會表示為 ^[ 或 <ESC>
用 vim 或 cat -v 通常會看到 ^[ 或 <ESC>,這是 ESC non-printable 的字元表示法,
若用 vim 編輯直接輸入 ^[ 或是 \033 等上面三種編碼只會被當成一般文字,無法起作用
若要將 Escape Sequences 寫進 file,我們需要先用 print or echo 將它以 non-printable char 輸出後再做 pipe
這是 Escape Sequences 的第一個部分,由 ESC character 和一個 [ 組成
這是 Escape Sequences 的第二個部分
前面控制顏色,後面控制格式
Color
| code | color |
|---|---|
| 30 | Black |
| 31 | Red |
| 32 | Green |
| 33 | Yellow |
| 34 | Blue |
| 35 | Magenta |
| 36 | Cyan |
| 37 | White |
Format
| code | format |
|---|---|
| 1 | bold |
| 2 | dim |
| 3 | italics |
| 4 | underline |
| 7 | Background |
這是 Escape Sequences 的第三個部分
m character 表示這個 Escape Sequences 至此結束
需要注意的是當設了Escape Sequences,後面的文字皆會受其影響
若要只對特定文字設置,在文字後需要再以 \x1b[0m 將配置清空