網頁

2011年10月29日 星期六

Shell Script: 控制文字顏色

好久沒寫 shell script,剛好這次又用到,因為機器老舊,為了避免圖形介面拖慢系統效能,只好用 shell script 來幫忙做些簡單的系統操作管理。
想想剛學 shell script 時,發生蠻多好笑的事,蠻好的回憶。

一般 shell script 都是黑白畫面像熊貓一樣,但是透過 ANSI escape codes 控制文字顏色輸出,會讓你的 shell script 很不一樣。
要注意的是,有些老版本並不支援。

Syntx:
\E[樣式;文字顏色;背景顏色m
輸出文字
\E[0m

Note: 用 printf 來輸出,而不是用一般的 echo。

樣式:
0 一般樣式
1 粗體
4 加底線
5 灰底
7 文字及背景顏色對調

文字顏色:
30 黑色
31 紅色
32 綠色
33 黃色
34 藍色
35 紫色
36 青綠
37 白色

背景顏色:
40 黑色
41 紅色
42 綠色
43 黃色
44 藍色
45 紫色
46 青綠
47 白色

Sample Code:
#!/bin/bash
printf "\E[0;35;40m"
echo "            Menu of available command:"
printf "\E[0m"
echo "            ========================================================"
printf "\E[0;31;40m"
echo "            1. Check Server Status"
echo "            2. display the month            3. display the day"
printf "\E[0m"
echo "            --------------------------------------------------------"
printf "\E[0;32;40m"
echo "            4. Query Logs"
printf "\E[0m"
echo "            --------------------------------------------------------"
printf "\E[0;33;40m"
echo "            q. quit"
printf "\E[0m"
echo "            ========================================================"
printf "\E[0;36;40m"
echo -n "            Select a number from the list: "
printf "\E[0m"

Output:

沒有留言:

張貼留言