在講Shell指令碼之前,要先說一個我們之前學過的命令,echo
命令。
echo
命令是Linux中最基礎的命令,也是很常用的命令,特別是在寫Shell指令碼的時候,可能會經常被用到,雖然echo
命令非常基礎,但是功能還算豐富。
1、echo命令的作用
- 用於列印輸出文字(字串)。
- 在指令碼中
echo
命令常用於在顯示器上顯示一段文字,一般起到提示的作用。 - 在Shell程式設計中,常常用
echo
命令,在終端下列印變數value
的屬性或者屬性值。
2、echo命令的基本用法
(1)echo命令的格式
[root@localhost ~ ] # echo [選項] [輸 出內容]
選項:
-e
:支援反斜線控制的字元轉換(具體看本文第3點)。-n
:取消輸出後行末的換行符號(就是內容輸出後不換行)。
(2)舉例
- 輸出一個連續的字串。
[root@localhost ~]# echo 123456789 123456789
- 輸出一個帶有空格的字串。
需要給字串加上雙引號。[root@localhost ~]# echo "666 888" 666 888
-n
選項演示。
在指令碼中偶爾會用到。[root@localhost ~]# echo -n "666 888" 666 888[root@localhost ~]#
注意:
如果字串的最後是
!
,這個!
後一定要加上一個空格,不然會報錯。如下圖:
3、echo命令的-e
選項用法
在echo
命令中如果使用了-e
選項,則可以支援使用控制字元。控制字元如下:
\\
:輸出\
本身。\a
:輸出警告音。\b
:退格鍵,也就是向左刪除鍵。\c
:取消輸出行末的換行符。和-n
選項一致。\e
:ESCAPE鍵。\f
:換頁符。\n
:換行符。\r
:Enter鍵。\t
:製表符,也就是Tab鍵。\v
:垂直製表符。\0nnn
:按照八進位制ASCII碼錶輸出字元。其中0為數字零,nnn
是三位八進位制數。\xhh
:按照十六進位制ASCII碼錶輸出字元。其中hh是兩位十六進位制數。
(1)輸出\
,同時會在系統音中輸出一聲提示音。
[root@localhost ~ ] # echo -e "\\ \a"
\
注意:
如果覺得系統提示音很煩,可以編輯
/etc/inputrc
檔案。執行命令
[root@localhost ~ ] # vim /etc/inputrc
。編輯內容:把第二行的註釋開啟即可。
如下圖所示:
修改儲存檔案,執行
reboot
命令重啟系統即可。以後就不會在有系統提示音了。
(2)\b
的用法,在b鍵左側有\b
,所以輸出時只有ac
。
[root@localhost ~ ] # echo -e "ab\bc"
ac
(3)製表符\t
和換行符\n
的用法。
[root@localhost ~ ] # echo -e "a\tb\tc\nd\te\tf"
a b c
d e f
(4)演示八進位制ASCII碼輸出字元。
[root@localhost ~ ] # echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"
a b c
d e f
141
是個八進位制數,在ASCII碼中代表小寫的a
,其他的以此類推。
(5)演示十六進位制ASCII碼輸出字元。
[root@localhost ~ ] # echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a b c
d e f
4、echo命令一些特殊用法
(1)輸出字元帶有字型顏色
執行命令如下:
[root@localhost ~] # echo -e "\e[1;31m abcd \e[0m"
這條命令會把abcd
按照紅色輸出。解釋下這個命令:
\e[1
是標準格式,代表顏色輸出開始,\e[0m
代表顏色輸出結束。31m
定義字型顏色是紅色。echo
能夠識別的顏色如下:30m=黑色
,31m=紅色
,32m= 綠色
,33m=黃色
,34m= 藍色
,35m=洋紅
,36m=青色
,37m=白色
。
命令結果如下圖:
擴充,執行命令:
[root@localhost ~ ] echo -e "\e[1;31ma\e[0m""\e[1;33mb\e[0m""\e[1;34mc\e[0m""\e[1;36md\e[0m"
結果如下圖所示:
(2)輸出字元帶有背景顏色
執行命令如下:
[root@localhost ~] # echo -e "\e[1;42m abcd \e[0m"
這條命令會給abcd
加入一個綠色的背景。echo
命令可以使用的背景顏色如下:40m= 黑色
,41m=紅色
,42m=綠色
,43m=黃色
,44m=藍色
,45m=洋紅
,46m=青色
,47m=白色
。
命令結果如下圖:
擴充,執行命令:
[root@localhost ~ ] echo -e "\e[1;41ma\e[0m""\e[1;43mb\e[0m""\e[1;44mc\e[0m""\e[1;46md\e[0m"
命令結果如下圖:
注意:好像字串不能同時新增字型顏色和背景顏色(我沒有試出來)。