Shell 腳本輸出大量資訊時,透過 ANSI 轉義碼輸出彩色文字可大幅提升可讀性。定義 echocolor 函數支援黑/紅/綠/黃/藍/紫/青/白 8 色,呼叫簡單且可重複使用。
echocolor() {
color=${1} && shift
case ${color} in
black) echo -e "\e[0;30m${@}\e[0m" ;;
red) echo -e "\e[0;31m${@}\e[0m" ;;
green) echo -e "\e[0;32m${@}\e[0m" ;;
yellow) echo -e "\e[0;33m${@}\e[0m" ;;
blue) echo -e "\e[0;34m${@}\e[0m" ;;
purple) echo -e "\e[0;35m${@}\e[0m" ;;
cyan) echo -e "\e[0;36m${@}\e[0m" ;;
*) echo -e "\e[0;37m${@}\e[0m" ;;
esac
}
cd $(dirname $(readlink -f ${0}))
echocolor purple ">> 當前目錄:${PWD}"
modname=$(grep 'obj-m' Makefile | awk '{print $3}') && modname=${modname/.o}
echocolor purple ">> 模組名稱:${modname}"
echocolor yellow ">> 卸載舊模組.."
adb shell rmmod ${modname}
echocolor yellow ">> 正在編譯.."
make
echocolor yellow ">> 正在上傳.."
adb push k860_words_count.ko /tmp/
echocolor yellow ">> 正在安裝模組.."
adb shell insmod /tmp/k860_words_count.ko
echocolor cyan ">> 輸出除錯資訊.."
adb shell cat /proc/kmsg | grep word

輸出訊息即以對應顏色顯示,輕鬆區分資訊等級。