4.shell的格式化輸出(echo 、顏色輸出)


目錄

一、echo 輸出

二、顏色代碼

 

正文

一、echo 輸出

Shell 的 echo 指令,用於字符串的輸出

語法:echo string

echo 會將輸入的字符串送往標准輸出,輸出的字符串之間以空白字符隔開,並在最后加上換行號

 

1.echo 顯示普通字符串

echo 字符串,字符串可以不加雙引號

MBC02FV3MZMD6P:J_shell j$ echo hello world
hello world
MBC02FV3MZMD6P:J_shell j$ echo "hello world"
hello world

 

2.知識點【1】命令選項

  • -n 不要在最后自動換行
  • -e 若字符串中出現如下轉移字符,則按照轉義字符的意思處理
MBC02FV3MZMD6P:J_shell j$ echo "hello world"
hello world
MBC02FV3MZMD6P:J_shell j$ echo -n "hello world"
hello worldMBC02FV3MZMD6P:J_shell j$ 
hello worldMBC02FV3MZMD6P:J_shell j$ echo -n "Login:";read
Login:ll
MBC02FV3MZMD6P:J_shell j$ echo -n "data:";date +%F
data:2021-11-30
MBC02FV3MZMD6P:J_shell j$ 

 

先熟悉下面的轉移字符的意思

知識點:轉義字符

  • \a  發出警告聲
  • \b 刪除前一個字符
  • \c  最后不加上換行符號
  • \t  tab鍵, 制表符
  • \n  換行且光標移至首行

 

3.echo 顯示轉義字符(結合-e)

\a 結合-e,發出喇叭聲;不加-e就是字符串

MBC02FV3MZMD6P:J_shell j$ echo "\a\a\a"
\a\a\a
MBC02FV3MZMD6P:J_shell j$ echo -e "\a\a\a"

MBC02FV3MZMD6P:J_shell j$ 

 

\t 插入tab鍵

MBC02FV3MZMD6P:J_shell j$ echo -e "\t\t\t Title"
             Title
MBC02FV3MZMD6P:J_shell j$ 

 

\b 刪除前一個字符

MBC02FV3MZMD6P:J_shell j$ echo -e "bc\ba"
ba
MBC02FV3MZMD6P:J_shell j$ 

 

\c 回車不換行

MBC02FV3MZMD6P:J_shell j$ echo -e "bc\ba\c"
baMBC02FV3MZMD6P:J_shell j$ 

 組合舉個例子:

form_output.sh

#!/bin/bash
  
echo -e "\t\t\t\tMcDonald Shop"
echo -e "\t\t1) Chicken"
echo -e "\t\t2) Chips"
echo -e "\t\t3) Hamburger"
MBC02FV3MZMD6P:J_shell j$ bash form_output.sh 
                McDonald Shop
        1) Chicken
        2) Chips
        3) Hamburger
MBC02FV3MZMD6P:J_shell j$ echo $?
0
MBC02FV3MZMD6P:J_shell j$ 

 

 

二、顏色代碼

腳本中echo現實內容帶顏色顯示,echo顯示帶顏色,需要使用參數 -e

格式:

echo -e "\033[子背景顏色:文字顏色 字符串\033[0m"

舉個例子:

echo -e "\033[41;36m hello world \033[0m"

 

 

  • 41的位置:表示底色,后面是分號
  • 36的位置:表示字的顏色
  • 文件顏色后面要有個m
  • 字符串前后可以沒有空格,如果有的話,輸出也是有空格
  • 最后的0m的位置表示屬性,0m是關閉所有屬性

 

下面是帶顏色輸出的參考范圍;

#!/bin/bash
#
#下面是字體輸出顏色及終端格式控制
#字體色范圍:30-37
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 紅色字 \033[0m"
echo -e "\033[32m 綠色字 \033[0m"
echo -e "\033[33m 黃色字 \033[0m"
echo -e "\033[34m 藍色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天藍字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
#字背景顏色范圍:40-47
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;30m 紅底黑字 \033[0m"
echo -e "\033[42;34m 綠底藍字 \033[0m"
echo -e "\033[43;34m 黃底藍字 \033[0m"
echo -e "\033[44;30m 藍底黑字 \033[0m"
echo -e "\033[45;30m 紫底黑字 \033[0m"
echo -e "\033[46;30m 天藍底黑字 \033[0m"
echo -e "\033[47;34m 白底藍字 \033[0m"

#控制選項說明
#\033[0m 關閉所有屬性
#\033[1m 設置高亮度
#\033[4m 下划線
echo -e "\033[4;31m 下划線紅字 \033[0m"
#閃爍
echo -e "\033[5;34m 紅字在閃爍 \033[0m"
#反影
echo -e "\033[8m 消隱 \033[0m "

#\033[30m-\033[37m 設置前景色
#\033[40m-\033[47m 設置背景色
#\033[nA光標上移n行
#\033[nB光標下移n行
echo -e "\033[4A 光標上移4行 \033[0m"
#\033[nC光標右移n行
#\033[nD光標左移n行
#\033[y;xH設置光標位置
#\033[2J清屏
#\033[K清除從光標到行尾的內容
echo -e "\033[K 清除光標到行尾的內容 \033[0m"
#\033[s 保存光標位置
#\033[u 恢復光標位置
#\033[?25| 隱藏光標
#\033[?25h 顯示光標
echo -e "\033[?25l 隱藏光標 \033[0m"
echo -e "\033[?25h 顯示光標 \033[0m"
#下面的這個例子是字體不停的閃爍。
#!/bin/bash
#
a=30
b=41
while true
do
echo -e "\033[${a}m光輝女郎\033[0m"
echo -e "\033[${a}m的嗎西亞\033[0m"
echo -e "\033[${a}m洛克薩斯\033[0m"
a=$(($(($a%7))+30))
b=$(($(($b%7))+40))
#每次讓字體顏色在30-37轉換
#每次讓背景顏色在40-47轉換
echo -e "\033[4A\033[0m"
done 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM