Linux echo詳解:輸出命令

2020-07-16 10:04:29
學習一種程式語言,寫的第一個指令碼都是列印"Hello world!",我們也寫一個"Hello world!"指令碼用來學習一下 Shell 指令碼的執行方式。

在寫指令碼之前,我們需要學習一下 Linux 的列印命令 echo。該命令格式如下:

[[email protected] ~]# echo [選項] [輸出內容]

選項:
  • -e:支援反斜線控制的字元轉換(具體參見表 1)
  • -n:取消輸出後行末的換行符號(內容輸出後不換行)

其實 echo 命令非常簡單,命令的輸出內容如果沒有特殊含義,則原內容輸出到螢幕;如果輸出內容有特殊含義,則輸出列印其含義。

【例 1】

[[email protected] ~]# echo "c.biancheng.net"
#echo的內容就會列印到螢幕上
c.biancheng.net
[[email protected] ~]#

echo命令就是這麼簡單,輸出什麼內容,這個內容就會列印到螢幕上。

【例 2】

[[email protected] ~]# echo -n "c.biancheng.net"
c.biancheng.net[[email protected] ~]#
#如果加入了 "-n"選項,則在輸出內容結束後,不會換行,直接顯示新行的提示符

在 echo 命令中如果使用了"-e"選項,則可以支援控制字元,如表 1 所示。

表 1 控制字元
控制字元 作 用
輸出本身
a 輸出警告音
b 退格鍵,也就是向左刪除鍵
c 取消輸出行末的換行符。和“-n”選項一致
e Esc鍵
f 換頁符
n 換行符
r 確認鍵
t 製表符,也就是Tab鍵
v 垂直製表符
Onnn 按照八進位制 ASCII 碼錶輸出字元。其中 0 為數位 0,nnn 是三位八進位制數
xhh 按照十六進位制 ASCH 碼錶輸出字元。其中 hh 是兩位十六進位制數

【例 3】

[[email protected] ~]# echo -e " a"

#輸出 ,同時會在系統音響中輸出一聲警告音

在這個例子中,echo 命令會輸 。如果不像""這樣寫,那麼因為 有特殊含義,所以不會輸出。

【例 4】

[[email protected] ~]# echo -e "abbc"
ac
#在這個輸出中,在 b 的左側有"b",所以輸出時只有 ac


【例 5】

[[email protected] ~]# echo -e "atbtcndtetf"
a b c
d e f
#因為加入了製表符"t"和換行符"n",所以會按照格式輸出


【例 6】

[[email protected] ~]# echo -e "141t142t143n144t145t146"
a b c
d e f
#還是會輸出上面的內容,不過是按照制ASCII碼輸出的

也就是說,141 這個八制數在 ASCII 碼中代表小寫的"a",其他的以此類推。

【例 7】

[[email protected] ~]# echo -e "x61tx62tx63nx64tx65tx66"
a b c
d e f
#如果按照十六進位制ASCII碼同樣可以輸出

echo命令還可以輸出一些比較有意思的內容。

【例 8】

[[email protected] ~]# echo -e "e[1;31m abed e[0m"

這條命令會把 abcd 按照紅色輸出。解釋一下這個命令:e[1 是標準格式,代表顏色輸出開始,e[0m 代表顏色輸出結束,31m 定義字型顏色是紅色。

echo 命令能夠識別的顏色如下:30m=黑色,31m=紅色,32m=綠色,33m=黃色,34m=藍色,35m=洋紅,36m=青色,37m=白色。

【例 9】

[[email protected] ~]# echo -e "e[1;42m abed e[0m"

這條命令會給 abcd 加入一個綠色的背景。echo 命令可以使用的背景顏色如下:40m=黑色,41m=紅色,42m=綠色,43m=黃色,44m=藍色,45m=洋紅,46m=青色,47m=白色。