[實作筆記] Bash 輸出彩色技巧

前情提要

在 Bash 腳本中,有時我需要以提高日誌的可讀性或突顯重要資訊。
通過 ANSI escape codes 改變文本的顏色、背景顏色和樣式。
可以讓腳本的輸出更加直觀且友善。

本文

在 Bash 中,我們可以使用 ANSI escape codes 來實現文本的高亮顯示和顏色選擇。
以下是一些常見的 ANSI 顏色碼:

前景顏色

  • 黑色\033[30m
  • 紅色\033[31m
  • 綠色\033[32m
  • 黃色\033[33m
  • 藍色\033[34m
  • 洋紅色\033[35m
  • 青色\033[36m
  • 白色\033[37m

背景顏色

  • 黑色\033[40m
  • 紅色\033[41m
  • 綠色\033[42m
  • 黃色\033[43m
  • 藍色\033[44m
  • 洋紅色\033[45m
  • 青色\033[46m
  • 白色\033[47m

樣式

  • 粗體\033[1m
  • 下劃線\033[4m
  • 反向\033[7m
  • 重置\033[0m

透過這些代碼,你可以靈活地控制文本的外觀。例如,使用 \033[1;31m 可以讓文本變為紅色粗體,使用 \033[0m 可以重置樣式回到預設。

示例

下面是如何使用這些顏色碼來高亮顯示 echo 輸出的示例:

1
2
3
4
5
6
7
echo -e "\033[1;31m這是一段紅色粗體文本\033[0m"
echo -e "\033[1;32m這是一段綠色粗體文本\033[0m"
echo -e "\033[1;33m這是一段黃色粗體文本\033[0m"
echo -e "\033[1;34m這是一段藍色粗體文本\033[0m"
echo -e "\033[1;35m這是一段洋紅色粗體文本\033[0m"
echo -e "\033[1;36m這是一段青色粗體文本\033[0m"
echo -e "\033[1;37m這是一段白色粗體文本\033[0m"

參考

ANSI escape codes - Wikipedia

(fin)

Please enable JavaScript to view the Gitalk. :D