『忘了再學』Shell基礎 — 3、echo命令的介紹與使用

繁華似錦Fighting發表於2022-03-25

在講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 ~]#
    
    在指令碼中偶爾會用到。

注意:

如果字串的最後是!,這個!後一定要加上一個空格,不然會報錯。

如下圖:

image

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

編輯內容:把第二行的註釋開啟即可。

如下圖所示:

image

修改儲存檔案,執行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=白色

命令結果如下圖:

image

擴充,執行命令:

[root@localhost ~ ] echo -e "\e[1;31ma\e[0m""\e[1;33mb\e[0m""\e[1;34mc\e[0m""\e[1;36md\e[0m"

結果如下圖所示:

image

(2)輸出字元帶有背景顏色

執行命令如下:

[root@localhost ~] # echo -e "\e[1;42m abcd \e[0m"

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

命令結果如下圖:

image

擴充,執行命令:

[root@localhost ~ ] echo -e "\e[1;41ma\e[0m""\e[1;43mb\e[0m""\e[1;44mc\e[0m""\e[1;46md\e[0m"

命令結果如下圖:

image

注意:好像字串不能同時新增字型顏色和背景顏色(我沒有試出來)。

相關文章