天天看點

echo指令echo指令—詳解

echo指令—詳解

1.文本輸出:echo指令後面跟上輸出的文本

2.echo自動換行; echo -n 表示不換行輸出

3. echo -e 表示轉義字元

①\b轉義後相當于按倒退鍵(backspace),但前提是“\b”後面存在字元,具體效果參考下方示例。

②\c不換行輸出,在“\c”後面不存在字元的情況下,作用相當于echo -n,具體效果參考下方示例。

③\n換行,具體效果參下方示例。

④\f換行,但是換行後的新行的開頭位置連接配接着上一行的行尾,具體效果參下方示例。

⑤\v與\f相同。

⑥\t轉以後表示插入tab,即制表符。

⑦\r光标移至行首,但不換行,相當于使用“\r”以後的字元覆寫“\r”之前同等長度的字元,隻看這段文字描述的話可能不容易了解,具體效果檢視示例。

⑧\表示插入“\”本身。**

實際操作如下:

[[email protected] ~]$ echo -e "123\b"
123
[[email protected] ~]$ echo -e "123\b4567"
124567
[[email protected] ~]$ echo -e "123\b\b4567"
14567
[[email protected] ~]$ echo -e "123\b\b\b4567"
4567
[[email protected] ~]$ echo -e "123\c"
123[[email protected] ~]$ 
[[email protected] ~]$ echo -n "123"
123[[email protected] ~]$ 
[[email protected] ~]$ echo -e "123\c456"
123[[email protected] ~]$ 
[[email protected] ~]$ echo -e "abcefg\n1234"
abcefg
1234
[[email protected] ~]$ echo -e "123\f456"
123
       456
[[email protected] ~]$ echo -e "abcdefg\f1234"
abcdefg
           1234
[[email protected] ~]$ echo -e "abcdefg\f1234\[email protected]@@@@@@@"
abcdefg
           1234
                @@@@@@@@
[[email protected] ~]$ echo -e "abcdefg\r123"
123defg
[[email protected] ~]$ echo -e "abc\r123"
123
[[email protected] ~]$ echo -e "a\r123"
123
[[email protected] ~]$ echo -e "a\r"
a
[[email protected] ~]$ echo -e "abc\\def"
abc\def
           

4、------使用echo指令的-e選項,除了能夠輸出轉義字元,還能夠在指令行中輸出彩色的字元,或是帶有彩色背景的字元。

例:

echo指令echo指令—詳解
  • 從圖中來看,一共可以分為兩部分,\033[31m 和\033[0m。
  • 這些代碼有一個專業名詞,叫做“ANSI控制碼”。
  • 我們習慣把\033[31m了解成“開始輸出紅色字元”,把\033[0m了解成“結束輸出紅色字元”。
  • 當echo -e遇到\033[31m的時候,就認為自己要輸出紅色字元了,\033[31m就是一個信号,它告訴echo -e,需要開始輸出紅色字元了,\033[0m也是一種信号,它告訴echo -e指令,紅色字元已經不能輸出了,在輸出的字元應該是黑白字元了,不能是彩色的了。

那麼,如果我們想要輸出綠色字元,該怎麼寫呢? 示例如下:

echo指令echo指令—詳解

-------------------------------------------這是一條美麗的分界線-------------------------------

echo指令echo指令—詳解

通過上面兩行指令可以看出,輸出紅色字元與輸出綠色字元唯一差別就是紅色數字。是以我們隻要改變相應位置的數字,就能改變輸出字元的顔色,是以,我們将能夠輸出的顔色對應的數字總結如下:

30 :黑色

31 :紅色

32 :綠色

33 :黃色

34 :黃色

35 :紫色

36 :淺藍色

37 :灰色

輸出效果如下:

echo指令echo指令—詳解

除了能夠使用echo指令輸出彩色字元,我們還能夠為彩色字元添加彩色背景,比如,我們想要輸出據歐黃色背景的紅色字元,具體情況如下:

echo指令echo指令—詳解

對比一下:

echo指令echo指令—詳解

可以看出,唯一不同的地方就是帶有黃色背景的指令中,多了個“43;”其他部分都一樣。

背影顔色編号對應的數字如下:

-----------> 40 :黑色

-----------> 41 :紅色

-----------> 42 :綠色

-----------> 43 :黃色

-----------> 44 :藍色

-----------> 45 :紫色

-----------> 46 :淺藍色

-----------> 47 :灰色

5、我們之前說過,”\033[31m”這些代碼都屬于ANSI控制碼。

ANSI控制碼中不僅有控制顔色的控制碼,還有一些提供其他功能的控制碼,總結如下:

\33[0m 關閉所有屬性,也就是說此控制碼前面的控制碼将會失效,此控制碼中的0可以省略。

  • \33[1m 設定高亮度
  • \33[4m 下劃線
  • \33[5m 閃爍
  • \33[7m 反顯,撞色顯示,顯示為白底黑字,或者為黑底白字
  • \33[8m 消隐,字元顔色将會與背景顔色相同
  • \33[30m----\33[37m設定字型顔色
  • \33[40m----\33[47m設定背景顔色
  • \33[K 消除從光标到行尾的内容