說明:
echo - display a line of text
echo 顯示一行文字
用法:
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
echo 短選項\長選項 字元串
選項:
-n 不輸出行尾的換行符
-e 啟用轉義字元功能
-E 禁用反斜杠大解釋轉義(預設)
--help 顯示幫助并退出
--version 顯示版本系統并退出
-e 激活轉義字元:注意echo輸出内容必須要用""引用
\\ \輸出反斜杠本身
\a 發出告警聲
\b 删除前一個字元,但前提是\b後面存在字元
\c 不換行輸出,在\c後面不存在字元的情況下,和echo -n一樣,如存在字元則不輸出
\f 換行但換行後的新行開頭位置連接配接上一行的行尾
\n 換行且光标移至行首
\r 光标移至行首,但不換行,會将\r後面的内容覆寫前面的内容
\t 插入tab,制表符
\v 與\f相同
\nnn 插入nnn(八進制)所代表的ASCII字元
示例:
1.使用\b轉義字元,後面需要跟字元否則不處理,一個\b表示删除一個字元
<code>[root@zxq </code><code>ssh</code><code>]</code><code>#echo -e "123\b"</code>
<code>123</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code>#echo -e "123\b456"</code>
<code>12456</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code>#echo -e "123\b\b456"</code>
<code>1456</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code>#echo -e "123\b\b\b456"</code>
<code>456</code>
2.\c不換行輸出,如果\c後面不跟字元則跟echo -n一樣,如存在字元則不輸出後面大字元
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\c"</code>
<code>123[root@zxq </code><code>ssh</code><code>]</code><code># echo -n "123"</code>
<code>123[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\cabc"</code>
<code>123[root@zxq </code><code>ssh</code><code>]</code><code>#</code>
3.\n表示換行,被輸出的字元在\n後則另起一行輸出
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\nabc"</code>
<code>abc</code>
4.\f換行,但換行後的新行位置連接配接上一行的行尾
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\fabc"</code>
<code> </code><code>abc</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\fabc\f456"</code>
<code> </code><code>456</code>
4.\r表示\r後面的字元覆寫同等長度的\r前面的字元
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\rabc"</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123456\rabc"</code>
<code>abc456</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\rabcdef"</code>
<code>abcdef</code>
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\r"</code>
5.\\經過轉義後表示\
<code>[root@zxq </code><code>ssh</code><code>]</code><code># echo -e "123\\456"</code>
<code>123\456</code>
6.使用echo的-e功能實作倒計時
<code>for</code> <code>i </code><code>in</code> <code>`</code><code>seq</code> <code>-w 10 -1 1`;</code><code>do</code> <code>echo</code> <code>-</code><code>ne</code> <code>"$i\r"</code><code>;</code><code>sleep</code> <code>1; </code><code>done</code>
<code>tput sc;</code><code>for</code><code>((i=10;i>0;i--));</code><code>do</code> <code>tput rc;tput ed;</code><code>echo</code> <code>-n </code><code>"$i"</code><code>;</code><code>sleep</code> <code>1;</code><code>done</code>
上面是兩種方法,第二種方法值得研究,其中,tput sc 是存儲光标位置,tput rc 是恢複光标位置 tput ed 是清除光标位置,到行尾的内容。
7.echo配合管道設定密碼
此處注意輸出特殊字元密碼時需要用單引号引用世特殊字元原樣輸出,例如這裡的“!123”如不使用單引号而使用雙引号,則密碼是設定成功的,但是密碼卻是調用事件存儲的密碼,會發生密碼不正确現象,特别注意!
echo '!123'|passwd --stdin zhang
8.使用echo -e改變字元顔色顯示
字元顔色代碼:
字型 背景 顔色
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
echo -e "\033[43;30m 黑字黃底 \033[0m"
echo -e "\033[43;31m 紅字黃底 \033[0m"
echo -e "\033[43;32m 綠字黃底 \033[0m"
echo -e "\033[41;33m 黃字紅底 \033[0m"
echo -e "\033[45;34m 藍字紫底 \033[0m"
echo -e "\033[46;35m 紫字青底 \033[0m"
echo -e "\033[44;36m 青字藍底 \033[0m"
echo -e "\033[46;37m 白字青底 \033[0m"
<a href="https://s5.51cto.com/wyfs02/M00/93/2D/wKiom1kIunji9ppJAACXWmAfk34818.png" target="_blank"></a>
其它代碼:
0m 關閉所有屬性,此處的m可以省略
1m 設定高亮
4m 下劃線
5m 閃爍
7m 反顯
8m 消隐,字元顔色與背景相同
30m-37m 設定字型顔色
40m-47m 設定背景顔色
k 清除從光标到行尾的内容
[root@zxq ssh]# echo -e "\033[37m 黑字白底 \033[0m"
黑字白底
[root@zxq ssh]# echo -e "\033[1;37m 黑字白底 \033[0m"
[root@zxq ssh]# echo -e "\033[4;37m 黑字白底 \033[0m"
[root@zxq ssh]# echo -e "\033[5;37m 黑字白底 \033[0m"
[root@zxq ssh]# echo -e "\033[7;37m 黑字白底 \033[0m"
[root@zxq ssh]# echo -e "\033[8;37m 黑字白底 \033[0m"
不可見
<a href="https://s1.51cto.com/wyfs02/M02/93/2C/wKioL1kIvm7DetfkAABnfLY97FU658.png" target="_blank"></a>
本文轉自 80後小菜鳥 51CTO部落格,原文連結:http://blog.51cto.com/zhangxinqi/1921324