色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

腳本美化高手之輕松實現文本顏色和背景定制的酷炫Shell技巧

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2024-12-06 10:38 ? 次閱讀

shell腳本中 echo 和 printf 都可以輸出內容。示例1:

echo -e "?33[43;35m david use echo say Hello World ?33[0m 
" 

printf "?33[44;36m david use printf say Hello World ?33[0m 
" 

echo -e "?33[47;30;5m david use echo say ?33[0m Hello World 
"

輸出效果如下:
92901f44-b159-11ef-93f3-92fbcf53809c.gif
它的格式是這樣的:

echo -e "?33[字背景顏色;字體顏色m 字符串 ?33[0m"  或者
printf "?33[字背景顏色;字體顏色m 字符串 ?33[0m"  或者
echo -e "?33[字背景顏色;字體顏色m;ascii碼m 字符串 ?33[0m 字符串(can null) 
" 

格式說明

shell腳本中echo命令是內容顯示,echo顯示帶顏色需要使用參數 -e
格式如下:
echo -e "?33[字背景顏色;文字顏色m字符串?33[0m"
例如:
echo -e "?33[41;36m something here ?33[0m"
其中41的位置代表底色, 36的位置是代表字的顏色

注:

1、字背景顏色和文字顏色之間是英文的";"

2、文字顏色后面有個m

3、字符串前后可以沒有空格,如果有的話,輸出也是同樣有空格

特效可以疊加,需要使用“;”隔開,例如:閃爍+下劃線+白底色+黑字為 ?33[5;4;47;30m閃爍+下劃線+白底色+黑字為?33[0m

再來看示例1的第3個命令:

echo -e "?33[47;30;5m david use echo say ?33[0m Hello World 
" 

這個命令解釋:

47 代表背景色為白色,
30 代表字體為黑色,
5 代表字體閃爍,
0 代表關閉所有屬性
輸出字符 “david use echo say”,然后重新設置屏幕到缺省設置,輸出字符 “Hello World”后顏色回復正常。

-e是echo的一個可選項,用于激活特殊字符的解析器, 也就是對反斜線轉義符(即)的解釋。?33引導非常規字符序列。意味著設置屬性然后結束非常規字符序列,這里起效果的字符是47;30;5和0。修改47;30;5可以生成不同顏色的組合,數值和編碼的前后順序沒有關系。

組合命令:

示例2,組合命令:

echo -e "?33[20;1H?33[1;4;32m david use echo say ?33[0m Hello World 
"

這行命令首先?33[20;1H將光標移動到終端第20行第1列,之后的?33[1;4;32m將文本屬性設置為高亮、帶下劃線且顏色為綠色,然后輸出Hello,world;最后?33[0m將終端屬性設為缺省,這樣就不會看到連命令完成后的命令提示符也變了樣兒了。 輸出效果如下:
92a8416e-b159-11ef-93f3-92fbcf53809c.png

我們可以通過各種命令的組合可以實現對終端輸出地復雜控制。

輸出特效格式控制:

?33[0m  關閉所有屬性  
?33[1m   設置高亮度  
?3[4m   下劃線  
?33[5m   閃爍  
?33[7m   反顯  
?33[8m   消隱  
?33[30m   --   ?33[37m   設置前景色  
?33[40m   --   ?33[47m   設置背景色

例:
echo -e "?33[31m 紅色字 ?33[0m"
echo -e "?33[34m 黃色字 ?33[0m" 
echo -e "?33[41;33m 紅底黃字 ?33[0m"
echo -e "?33[41;37m 紅底白字 ?33[0m" 

字顏色范圍(前景顏色):30—–39

echo -e "?33[30m 黑色字 ?33[0m" 
echo -e "?33[31m 紅色字 ?33[0m" 
echo -e "?33[32m 綠色字 ?33[0m"
echo -e "?33[33m 黃色字 ?33[0m"
echo -e "?33[34m 藍色字 ?33[0m"
echo -e "?33[35m 紫色字 ?33[0m" 
echo -e "?33[36m 天藍字 ?33[0m" 
echo -e "?33[37m 白色字 ?33[0m" 
38:在缺省的前景顏色上設置下劃線 
39:在缺省的前景顏色上關閉下劃線

補充:上面的例子中,每行后面都有 ?33[0m ,是為了使終端顯示的顏色恢復到修改背景和字體顏色之前的狀態。

字背景顏色范圍(背景顏色):40~47

40:黑 
41:深紅 
42:綠 
43:黃色 
44:藍色 
45:紫色 
46:深綠 
47:白色 
49:設置缺省黑色背景

光標位置等的格式控制:

33[nA 光標上移n行 
33[nB 光標下移n行 
33[nC 光標右移n行 
33[nD 光標左移n行 
33[y;xH設置光標位置 
33[2J 清屏 
33[K 清除從光標到行尾的內容 
33[s 保存光標位置 
33[u 恢復光標位置 
33[?25l 隱藏光標 
33[?25h 顯示光標

示例3:

echo -e "?33[0m none ?33[0m"
echo -e "?33[30m black ?33[0m"
echo -e "?33[1;30m dark_gray ?33[0m"
echo -e "?33[0;34m blue ?33[0m"
echo -e "?33[1;34m light_blue ?33[0m"
echo -e "?33[0;32m green ?33[0m"
echo -e "?33[1;32m light_green ?33[0m"
echo -e "?33[0;36m cyan ?33[0m"
echo -e "?33[1;36m light_cyan ?33[0m"

輸出效果如下:
92c91466-b159-11ef-93f3-92fbcf53809c.png

echo -e "?33[0;31m red ?33[0m"
echo -e "?33[1;31m light_red ?33[0m"
echo -e "?33[0;35m purple ?33[0m"
echo -e "?33[1;35m light_purple ?33[0m"
echo -e "?33[0;33m brown ?33[0m"
echo -e "?33[1;33m yellow ?33[0m"
echo -e "?33[0;37m light_gray ?33[0m"
echo -e "?33[1;37m white ?33[0m"

輸出效果如下:
92db0c8e-b159-11ef-93f3-92fbcf53809c.png

echo -e "?33[40;37m 黑底白字 ?33[0m"
echo -e "?33[41;30m 紅底黑字 ?33[0m"
echo -e "?33[42;34m 綠底藍字 ?33[0m"
echo -e "?33[43;34m 黃底藍字 ?33[0m"
echo -e "?33[44;30m 藍底黑字 ?33[0m"
echo -e "?33[45;30m 紫底黑字 ?33[0m"
echo -e "?33[46;30m 天藍底黑字 ?33[0m"
echo -e "?33[47;34m 白底藍字 ?33[0m"
echo -e "?33[4;31m 下劃線紅字 ?33[0m"
echo -e "?33[5;31m 紅字在閃爍 ?33[0m"
echo -e "?33[8m 消隱 ?33[0m "

輸出效果如下:
92e652ba-b159-11ef-93f3-92fbcf53809c.gif

范圍參考:

0 重新設置屬性到缺省設置
1 設置粗體
2 設置一半亮度(模擬彩色顯示器的顏色)
4 設置下劃線(模擬彩色顯示器的顏色)
5 設置閃爍
7 設置反向圖象
8 消隱 
22 設置一般密度
24 關閉下劃線
25 關閉閃爍
27 關閉反向圖象

// 字體顏范圍(前景顏色):30~39
30:黑 
31:紅 
32:綠 
33:黃 
34:藍色 
35:紫色 
36:深綠 
37:白色 

38:在缺省的前景顏色上設置下劃線
39:在缺省的前景顏色上關閉下劃線

// 字背景顏色范圍(背景顏色):40~49 
40:黑 
41:深紅 
42:綠 
43:黃色 
44:藍色 
45:紫色 
46:深綠 
47:白色 

nA 光標上移n行 
nB 光標下移n行 
nC 光標右移n行 
nD 光標左移n行 
y;xH設置光標位置 
2J 清屏 
K 清除從光標到行尾的內容 
s 保存光標位置 
u 恢復光標位置 
?25l 隱藏光標 
?25h 顯示光標

預先定義顏色變量

如果是通過bash腳本執行,多次頻繁的輸出展示,那么可以通過變量簡化樣式格式引用:

#! /bin/bash
## author:xiongzaiqiren

RED_COLOR='E[1;31m'  
YELOW_COLOR='E[1;33m' 
BLUE_COLOR='E[1;34m'  
RESET='E[0m'

#需要使用echo -e
echo -e  "${RED_COLOR}===david say red color===${RESET}"
echo -e  "${YELOW_COLOR}===david say yelow color===${RESET}"
echo -e  "${BLUE_COLOR}===david say green color===${RESET}"

輸出效果如下:
92fd236e-b159-11ef-93f3-92fbcf53809c.png

將自定義顏色格式定義成變量,然后在具體工作是運用的實例。
定義顏色動作, 把echo -en也定義到變量中。使用時直接調用顏色動作即可。
倒計時(利用 來實現回到行首覆蓋輸出)

#! /bin/bash
## author:xiongzaiqiqren

##### 定義顏色動作, 把echo -en也定義到變量中
SETCOLOR_BLACK="echo -en \E[1;30m"
SETCOLOR_FAILURE="echo -en \E[1;31m"
SETCOLOR_SUCCESS="echo -en \E[1;32m"
SETCOLOR_WARNING="echo -en \E[1;33m"
SETCOLOR_INFO="echo -en \E[1;34m"
SETCOLOR_REMIND="echo -en \E[1;35m"
SETCOLOR_BUG="echo -en \E[1;36m"
SETCOLOR_WHITE="echo -en \E[1;37m"
SETCOLOR_NORMAL="echo  -en \E[0;39m"
SETCOLOR_FLICKER="echo  -en \E[5m"
 
##### 使用時直接調用顏色動作即可
$SETCOLOR_BLACK && echo BLACK
$SETCOLOR_FAILURE && echo FAILURE   
$SETCOLOR_SUCCESS && echo SUCCESS   
$SETCOLOR_WARNING && echo WARNING   
$SETCOLOR_INFO && echo INFO
$SETCOLOR_BUG && echo BUG
$SETCOLOR_REMIND && echo REMIND
$SETCOLOR_WHITE && echo WHITE
$SETCOLOR_NORMAL  && echo NORMAL

$SETCOLOR_FLICKER  && echo FLICKER
$SETCOLOR_NORMAL  && echo NORMAL


##### 其他測試
echo "輸出內容,行末自帶換行符";
echo -n "輸出內容,取消行末換行符(內容輸出后不換行)";
echo "這是接著前面的(沒有新的行)";

echo -e "e[1;33;5m 閃爍文字 e[0m"

# 倒計時(利用
來實現回到行首覆蓋輸出)
for i in {1..100}; do echo -en "
 $i%"; sleep 1; done;

以上代碼在Linux服務器上保存為 myDisplay.sh 文件,并賦予可執行權限。然后看到效果。
運行結果如圖:
930cb6da-b159-11ef-93f3-92fbcf53809c.gif

鏈接:https://www.cnblogs.com/xiongzaiqiren/p/16895162.html

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Shell
    +關注

    關注

    1

    文章

    371

    瀏覽量

    23899
  • 腳本
    +關注

    關注

    1

    文章

    395

    瀏覽量

    28325

原文標題:腳本美化高手:輕松實現文本顏色和背景定制的酷炫Shell技巧

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本

    執行的操作。Shell腳本只是一個文本文件,包含一系列按順序執行的Shell(命令行)命令,就好像這些命令直接在命令行中輸入一樣
    的頭像 發表于 03-25 09:28 ?238次閱讀
    樹莓派新手必看!在樹莓派上編寫和運行 <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>!

    【ELF 2學習板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目-實現開機起動

    接上文【ELF 2學習板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目 Linux 系統下 init 系統 大多數 Linux 發行版的 init 系統是和 System V 相兼容
    發表于 02-11 11:24

    Linux從零到精通:最簡單的Shell腳本入門教程

    通過簡單的命令和腳本實現對系統的靈活控制和自動化管理。 shell腳本前言 shell腳本入門
    的頭像 發表于 12-05 09:56 ?1303次閱讀
    Linux從零到精通:最簡單的<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門教程

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫函數

    shell中的函數定義比較簡單,定義函數名可以沒有類型,函數返回值可有可無,如果有返回值,必須返回整數n(0~255)。同時,函數的定義必須放在shell腳本的開頭部分,只有函數被shell
    發表于 09-23 10:18

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫函數

    shell中的函數定義比較簡單,定義函數名可以沒有類型,函數返回值可有可無,如果有返回值,必須返回整數n(0~255)。同時,函數的定義必須放在shell腳本的開頭部分,只有函數被shell
    發表于 09-06 10:33

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫test命令

    test命令用于測試某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。在shell文件中輸入命令,通過特定的參數可以對數值、字符串進行比較,如下參數及示例。1、數值比較參數舉例,在
    發表于 09-05 09:09

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫四則運算

    shell程序默認支持整數加、減、乘、除、求余的運算。 1、使用$(())方式進行運算 例如計算2+3,使用$((2+3))。 我在腳本中加入這幾種運算進行測試: 執行腳本后結果如下: 2
    發表于 09-03 14:30

    shell腳本執行的三種方式及區別

    在Linux系統中,Shell腳本是一種非常實用的工具,用于自動化執行一系列命令。Shell腳本可以大大提高工作效率,簡化復雜的任務。在這篇文章中,我們將介紹
    的頭像 發表于 08-30 15:24 ?1980次閱讀

    執行shell腳本的方式包括什么

    執行Shell腳本的方式有很多種,以下是一些常見的方法: 直接運行腳本文件 在命令行中,可以直接使用腳本文件的路徑來運行腳本。例如: ./s
    的頭像 發表于 08-30 15:17 ?608次閱讀

    shell具有的功能和特點

    是執行命令。用戶可以在 Shell 提示符下輸入命令,Shell 會解析命令并將其傳遞給操作系統執行。Shell 支持各種類型的命令,包括內置命令、外部命令和腳本命令。 命令歷史
    的頭像 發表于 08-30 14:48 ?1143次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫數組

    本帖最后由 jf_13411809 于 2024-9-2 09:23 編輯 Shell腳本也支持使用數組。1、數組定義方式如下Arr=(a0 a1 a2…an)Arr是數組名稱,成員使用()括
    發表于 08-30 09:25

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之本地腳本的編寫和執行

    :3)shell應用程序執行shell腳本也可直接使用shell應用程序進行執行。我們前面說過,我們指定的shell應用為/bin/bash
    發表于 08-29 10:51

    shell腳本編寫之本地腳本的編寫和執行

    用來指定使用的shell應用;echo "my first shell !"為腳本中編寫的命令代碼。2、執行在執行腳本時,腳本
    發表于 08-28 09:36

    shell基本介紹及常用命令shell介紹

    輸出執行結果呈現給用戶;同時Shell也是一種解釋性的編程語言或者腳本語言,開發容易可以在短時間內完成功能強大又好用的腳本,可以在不同的系統上移植非常方便。二、Shell的特性不同的發
    發表于 08-15 09:28

    VA段碼COG液晶屏可個性化靈活設計UI,實現創意UI的高對比高亮多色彩顯示。

    VA段碼COG液晶屏可個性化靈活設計UI,實現創意UI的高對比高亮多色彩顯示。
    的頭像 發表于 07-11 10:50 ?979次閱讀
    VA段碼COG液晶屏可個性化靈活設計UI,<b class='flag-5'>實現</b>創意UI的高對比高亮多色彩<b class='flag-5'>炫</b><b class='flag-5'>酷</b>顯示。
    主站蜘蛛池模板: 视频一区二区中文字幕 | 欧美性xxx免费看片 欧美性xxx极品 | 蜜桃人妻无码AV天堂三区 | 无码成人AAAAA毛片含羞草 | 午夜免费无码福利视频麻豆 | 97碰成视频免费 | 无码天堂亚洲内射精品课堂 | 99无码熟妇丰满人妻啪啪 | 超碰免费视频公开97 | 九九精彩视频在线观看视频 | 40分钟超爽大片黄 | 国产一区二区在线观看免费 | 女人高潮被爽到呻吟在线观看 | 别插我B嗯啊视频免费 | 激情男女高潮射精AV免费 | 亚洲视频第二页 | 樱花草动漫www | 在线观看黄色小说 | 亚洲精品久久久无码AV片软件 | 男女高潮又爽又黄又无遮挡 | 云南14学生真实初次破初视频 | 国产国拍亚洲精品永久软件 | 日本国产精品无码一区免费看 | 极品 女神校花 露脸91 | 久久艹综合 | 亚洲AV无码一区二区三区牛牛 | 国产日韩欧美另类 | 精品国产乱码久久久久久软件 | 免费高清在线影片一区 | 久久久乱码精品亚洲日韩 | 狠狠狠狠狠狠干 | xnxx18美女| 国际老妇高清在线观看 | 挺进老师的紧窄小肉六电影完整版 | 久久精品在现线观看免费15 | 野花日本完整版在线观看免费高清 | 永久精品视频无码一区 | 双腿打开揉弄高潮H苏安安秦慕深 | 亚洲午夜精品A片久久WWW解说 | 99国产精品免费视频 | 动漫美女被到爽了流 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品