玩轉shell-如何輸出打印有顏色的字體文本


在這裏插入圖片描述

前言

shell 中的打印有echoprintf,不過printf就強大了,支持格式化輸出,當然我們這裏的輸出有顏色的文本也是支持的,如果想要echo支持則需要使用echo -e表示支持轉義

基本格式

背景底色號碼;這部分可以刪除,這樣就是默認黑色底色了;下面的\033\e一樣,所以二者可以互換

默認背景底色號碼:40 表示黑色

默認字體顏色號碼:37 表示白色

# 基本格式如下
printf "\e[背景底色號碼;字體顏色號碼m 格式化輸出符號 \e[0m" "文本內容";
echo -e "\e[背景底色號碼;字體顏色號碼m 文本內容 \e[0m";

# 默認情況下命令臺的樣式
printf "\e[40;37m %s\n \e[0m" "hello world!";
echo -e "\e[40;37m hello world! \e[0m";

顏色數據號碼

下面注意字體背景顏色既可以在背景號碼中寫,也可以在字體顏色號碼中寫

背景顏色號碼

  • 字體背景顏色範圍 40-47
    40:黑
    41:深紅
    42:綠
    43:黃色
    44:藍色
    45:紫色
    46:深綠
    47:白色

字體顏色號碼

  • 字基本顏色號碼 30-37
    30:黑
    31:紅
    32:綠
    33:黃
    34:藍色
    35:紫色
    36:深綠
    37:白色
  • 字體高亮顏色號碼 90-97
    90:黑
    91:紅
    92:綠
    93:黃
    94:藍色
    95:紫色
    96:深綠
    97:白色
  • 字背景顏色範圍 40-47
    40:黑
    41:深紅
    42:綠
    43:黃色
    44:藍色
    45:紫色
    46:深綠
    47:白色

舉例說明

# 顯示黑色背景 40,綠色字體 32
printf "\e[40;32m %s\n \e[0m" "hello world";
echo -e "\e[32m hello world \e[0m";

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oHvmLg45-1590593811374)(C:\Users\石磊\AppData\Roaming\Typora\typora-user-images\1590593680619.png)]
其他的我們需要稍微注意一下的是不管是echo還是printf輸出感嘆號時候是有問題的(寫在 sh 裏是沒問題的),因爲感嘆號被識別爲一個命令行歷史替換符號了,比如!!表示執行上一個命令,在雙引號中甚至不能轉義,所以我們要這樣寫echo "hello world"\!或者echo hello world\!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章