在講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:回車鍵。\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"
命令結果如下圖:

注意:好像字符串不能同時添加字體顏色和背景顏色(我沒有試出來)。


