shell指令碼(3)-格式化輸出

Mrwhite86發表於2021-07-21

一個程式需要有0個或以上的輸入,一個或更多輸出

 

一、echo語法

1、功能:將內容輸出到預設顯示裝置。

echo命令功能在顯示器上顯示一段文字,一般提到提示的作用

2、語法:echo[-ne][字串]

補充說明:echo會將輸入的字串送往標準輸出,輸出的字串以空白字元隔開,並在最後加上換行號。

命令選項:

-n:不在最後自動換行:

[root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo -n "hello world"
hello world[root@localhost ~]#
[root@localhost ~]# echo -n "Login: ";read
Login: aaa
[root@localhost ~]# echo -n "date: ";date +%F
date: 2021-07-03

-e:若字串出現以下字元,則特別加以處理,而不會將它當成一般文字輸出:

轉義字元:

\a:發出警告聲

\b:刪除前一個字元

\c:最後不加上換行符

\f:換行但游標仍舊停留在原來的位置

\n:換行且游標移至行首

\r:游標移至行首,但不換行

\t:插入tab

\v與\f相同

\插入\字元

\nnn插入nnn(八進位制)所代表的ASCII字元

-help顯示幫助-version顯示版本資訊

[root@localhost ~]# echo  -e "\t\t\t\a哈哈\n響了aa\ba"
            哈哈
響了aa
[root@localhost test20210720]# vi time.sh
#
!/bin/bash #倒數計時指令碼 for time in 'seq 9 -1 0';do echo -n -e "\b$time" sleep 1 done ech

 

二、顏色程式碼

1、概念:

指令碼中echo顯示內容帶顏色顯示,需要使用-e

2、格式說明:

格式: echo "/033[字背景顏色;字型顏色m字串/033[控制碼"

例如:

[root@localhost ~]# echo -e "\033[41;36m something here \033[0m" #
 something here

(1)字背景顏色和文字顏色之間是英文的

(2)文字顏色後面有個m

(3)字串前後可以沒有空格,如果有的話,輸出也是同研發的空格

3、字背景顏色範圍:40 - 49

40:黑
41:深紅
42:綠
43:×××
44:藍色
45:紫色
46:深綠
47:白色

程式碼如下:

echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 紅底白字 \033[0m"
echo -e "\033[42;37m 綠底白字 \033[0m"
echo -e "\033[43;37m 黃底白字 \033[0m"
echo -e "\033[44;37m 藍底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天藍底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"

注:可以把所有的033換為E;所實現的效果是一樣的

例:

echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\E[40;37m 黑底白字 \E[0m"

4、字顏色:30 - 39

30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色

程式碼如下:

echo -e "\033[47;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"

5、ANSI控制碼

\33[0m 關閉所有屬性 
\33[01m 設定高亮度 
\33[04m 下劃線 
\33[05m 閃爍 
\33[07m 反顯 
\33[08m 消隱 
\33[30m -- \33[37m 設定前景色 
\33[40m -- \33[47m 設定背景色 
\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 顯示游標

例如:

讓字型變為紅色並且不停的閃爍

echo -e "\033[31m \033[05m 請確認您的操作,輸入 [Y/N] \033[0m"

 

 

 

 

相關文章