echo 在linux幫助文檔的描述是顯示一行文本,類似于python和java等編程語言中的print語句,實際上它的作用不僅僅如此??梢允褂胢an echo查看詳細(xì)的參數(shù)說明。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供順昌網(wǎng)站建設(shè)、順昌做網(wǎng)站、順昌網(wǎng)站設(shè)計、順昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、順昌企業(yè)網(wǎng)站模板建站服務(wù),十年順昌做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
echo命令用于輸出指定的字符串,常見用法如下:
[root@localhost ~]$ echo # 輸出一個空白行 [root@localhost ~]$ echo "hello world" # 輸出指定的字符串 [root@localhost ~]$ echo $HOSTNAME # 輸出變量名對應(yīng)的值 [root@localhost ~]$ echo "hello world" > 1.txt # 輸出字符串到指定文件 [root@localhost ~]$ echo `date` # 輸出命令的執(zhí)行結(jié)果
常用參數(shù):
[root@localhost ~]$ echo -n "hello world" # -n 不在末尾輸出換行符,默認(rèn)會在末尾輸出換行符 hello world[root@localhost ~]$ [root@localhost ~]$ echo -e "hello\nworld" # -e 用于啟用反斜杠轉(zhuǎn)義,如 \n 會轉(zhuǎn)換成換行 hello world [root@localhost ~]$ echo -E "hello\nworld" # -E 用于禁用反斜杠轉(zhuǎn)義,默認(rèn)就是禁用 hello\nworld
常用轉(zhuǎn)義符:
[root@localhost ~]$ echo -e "hello \\ world" # \\ 用于輸出反斜杠 hello \ world [root@localhost ~]$ echo -e "\a" # \a 用于響鈴,發(fā)出聲音的響鈴哦 [root@localhost ~]$ echo -e "hello\bworld" # \b 用于退格,參考:https://blog.csdn.net/lucosax/article/details/34963593 hellworld [root@localhost ~]$ echo -e "hello \c world" # \c 使用該轉(zhuǎn)義符后,\c 后面的字符不再輸出 hello [root@localhost ~]$ echo -e "\e[32;1m hello world \e[35;1m" # \e 用于控制字體和背景顏色 hello world [root@localhost ~]$ echo -e "hello \f hello \f hello" # \f 換行,且光標(biāo)停在換行后原來的地方 hello hello hello [root@localhost ~]$ echo -e "hello\nworld" # \n 換行符 hello world [root@localhost ~]$ echo -e "hello\rworld" # \r 用于把光標(biāo)移到行首,相當(dāng)于把 \r 前面的字符刪除,只輸出 \r 后面的字符 world [root@localhost ~]$ echo -e "hello\tworld" # \t 制表符,相當(dāng)于鍵盤上的Tab鍵 hello world [root@localhost ~]$ echo -e "hello\vworld" # \v 垂直制表符 hello world
echo 輸出顏色:
語法:echo -e "\033[字體背景顏色;字體顏色m字符串\033[0m"
例子:echo -e "\033[41;36m something here \033[0m"
解釋:其中41的位置代表字體背景顏色,36的位置是代表字體顏色
//輸出帶顏色的字體 echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 紅色字 \033[0m" echo -e "\033[32m 綠色字 \033[0m" echo -e "\033[33m 黃色字 \033[0m" echo -e "\033[34m 藍(lán)色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天藍(lán)字 \033[0m" echo -e "\033[37m 白色字 \033[0m"
//輸出帶背景顏色的字體 echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;37m 紅底白字 \033[0m" echo -e "\033[42;37m 綠底白字 \033[0m" echo -e "\033[43;37m 黃底白字 \033[0m" echo -e "\033[44;37m 藍(lán)底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天藍(lán)底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m"
//其他屬性 \33[0m 關(guān)閉所有屬性 \33[1m 設(shè)置高亮度 \33[4m 下劃線 \33[5m 閃爍 \33[7m 反顯 \33[8m 消隱 \33[30m — \33[37m 設(shè)置前景色 \33[40m — \33[47m 設(shè)置背景色 \33[nA 光標(biāo)上移n行 \33[nB 光標(biāo)下移n行 \33[nC 光標(biāo)右移n行 \33[nD 光標(biāo)左移n行 \33[y;xH設(shè)置光標(biāo)位置 \33[2J 清屏 \33[K 清除從光標(biāo)到行尾的內(nèi)容 \33[s 保存光標(biāo)位置 \33[u 恢復(fù)光標(biāo)位置 \33[?25l 隱藏光標(biāo) \33[?25h 顯示光標(biāo)
example1: 顯示一行文本,任何特殊字符都不會被轉(zhuǎn)義
[root@aliyun-hk1 linux-shell-test]# echo hello\nworld hellonworld [root@aliyun-hk1 linux-shell-test]# echo 'hello\nworld' hello\nworld [root@aliyun-hk1 linux-shell-test]# echo hello world hello world [root@aliyun-hk1 linux-shell-test]#
example2: 顯示一行文本,不要輸出末尾的換行符
[root@aliyun-hk1 linux-shell-test]# echo -n hello world hello world[root@aliyun-hk1 linux-shell-test]# echo hello world hello world
example3: 顯示一行文本,啟用反斜杠后面的轉(zhuǎn)義字符
[root@aliyun-hk1 linux-shell-test]# echo -e 'hello\nworld' hello world [root@aliyun-hk1 linux-shell-test]# echo -e 'hello\tworld' hello world
example4: 顯示一行文本,禁用反斜杠后面的轉(zhuǎn)義字符,echo默認(rèn)參數(shù)
[root@aliyun-hk1 linux-shell-test]# echo -E 'hello\nworld' hello\nworld [root@aliyun-hk1 linux-shell-test]# echo -E 'hello\tworld' hello\tworld
example5: echo與cat的差異對比,echo只用于輸出文本,cat用于輸出文件內(nèi)容或者從標(biāo)準(zhǔn)輸入中輸出
[root@aliyun-hk1 linux-shell-test]# echo hello hello [root@aliyun-hk1 linux-shell-test]# cat hello cat: hello: No such file or directory [root@aliyun-hk1 linux-shell-test]# echo /etc/hostname /etc/hostname [root@aliyun-hk1 linux-shell-test]# cat /etc/hostname aliyun-hk1 [root@aliyun-hk1 linux-shell-test]# echo hello|cat hello [root@aliyun-hk1 linux-shell-test]#
examle6:echo在自動化構(gòu)建中的作用,例如我們可以將DB中返回的數(shù)據(jù)格式化成ansible需要的數(shù)據(jù),通過with_lines 傳入某個task并循環(huán)使用。在某些情況下,從網(wǎng)絡(luò)、DB等方式獲取的標(biāo)準(zhǔn)輸出,可以通過echo結(jié)合awk和grep等實現(xiàn)結(jié)果的格式化或數(shù)據(jù)清洗,然后用到后續(xù)的腳本中。
[root@aliyun-hk1 linux-shell-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n' name phone addr robin 13712345678 CN tom 13812345678 HK [root@aliyun-hk1 linux-shell-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk 'NR>1 {print $1}' robin tom - name: show the items from DB debug: msg: "{{ item }}" with_lines: "echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk 'NR>1 {print $1}' TASK [show the items from DB] ****************************************************************************************************************************************************************************************************************ok: [localhost] => (item=robin) => { "msg": "robin" } ok: [localhost] => (item=tom) => { "msg": "tom" }
example7:echo還可以將獲取到并格式化好的數(shù)據(jù)寫入到一個文件,等待后續(xù)使用。
[root@aliyun-hk1 ansible-test]# echo -en 'name phone addr\nrobin 13712345678 CN\ntom 13812345678 HK\n'|awk 'NR>1 {print $1}' > DataFromDB1.txt [root@aliyun-hk1 ansible-test]# cat DataFromDB1.txt robin tom [root@aliyun-hk1 ansible-test]#
到此這篇關(guān)于Linux echo文本處理命令的使用及示例的文章就介紹到這了,更多相關(guān)Linux echo命令內(nèi)容請搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!