echo echo 命令是 Linux bash 和 C shell中最常用的內置命令之一,通常用於腳本語言和批處理文件,用於標準輸出以及顯示文本內容等。echo命令在生產環境腳本中還是使用的非常多的,很多時候都要查看腳本執行是否正常,以及腳本執行到哪裡,都是通過echo命令來列印來定位 。 在寫腳 ...
echo
echo 命令是 Linux bash 和 C shell中最常用的內置命令之一,通常用於腳本語言和批處理文件,用於標準輸出以及顯示文本內容等。echo命令在生產環境腳本中還是使用的非常多的,很多時候都要查看腳本執行是否正常,以及腳本執行到哪裡,都是通過echo命令來列印來定位 。
在寫腳本之前,我們需要學習一下 Linux 的列印命令 echo。該命令格式如下:
[root@localhost ~]# echo [選項] [輸出內容]
選項:
- -e:支持反斜線控制的字元轉換
- -n:取消輸出後行末的換行符號(內容輸出後不換行)
示例1:普通列印
[root@localhost ~] echo ivanlee
ivanlee
[root@localhost ~] echo 'ivanlee'
ivanlee
[root@localhost ~] echo "ivanlee"
ivanlee
示例2: -n選項
取消換行符之後輸出內容和新的輸入框緊挨著
示例3: -e選項
控制字元 | 作用 |
---|---|
\\ |
輸出\ 本身這個字元 |
\a |
輸出警告音 |
\b |
退格鍵,也就是向左刪除鍵 |
\c |
取消輸出行末的換行符。和“-n”選項一致 |
\e |
Esc鍵 |
\f |
換頁符 |
\n |
換行符 |
\r |
回車鍵,游標移至行首,但不換行 |
\t |
插入 tab製表符,Tab鍵 |
\v |
垂直製表符 |
\0nnn |
按照八進位 ASCII 碼表輸出字元。其中 0 為數字 0,nnn 是三位八進位數 |
\xnn |
按照十六進位 ASCH 碼表輸出字元。其中 hh 是兩位十六進位數 |
-
echo -e "\\ \a"
輸出斜杠本身,以及會聽到“bo~”的一聲警告音ivanlee[root@localhost ~] echo -e "\\ \a" \
-
echo -e "ab/bc"
會輸出ac,因為\b
代表向左刪除一個鍵[root@localhost ~] echo -e "ab\bc" ac [root@localhost ~] echo -e "123\b\b4567" 14567
-
`echo -e "123456\c" 換行
[root@localhost ~] echo -e "1234456\c" 1234456[root@localhost ~]#
-
echo -e "ivan\elee"
終止輸出[root@localhost ~] echo -e "ivan\elee" ivan
-
echo -e "ivan\nlee"
換行輸出[root@localhost ~] echo -e "ivan\nlee" ivan lee
-
echo -e \r
使用 echo 命令輸出 "\r" 轉義字元,表示使用 "\r" 後面的字元覆蓋 "\r" 之前的同等長度的字元。[root@localhost ~] echo -e "12345\r6789" 覆蓋等長的長度! 67895 [root@localhost ~] echo -e "12345\r56789" 56789
-
echo -e \t
輸出內容會成為表格的形式[root@localhost ~] echo -e "a\tb\tc\nd\te\tf\n" | a b c | d e f | ------------------------------------------------|-------------------- | [root@localhost ~] echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146" | a b c | d e f | 還是會輸出上面的內容,不過是按照制ASCII碼輸出的 | ---------------------------------------------------------------|------| [root@localhost ~] echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"| a b c | d e f | 如果按照十六進位ASCII碼同樣可以輸出 |
-
echo -e -v
[root@localhost ~] echo -e "a\vb\vc\nd\ve\vf" a b c d e f
示例4:ls功能
-
echo *
會輸出當下目錄的所有文件和子目錄,不過不會換行[root@localhost etc] echo * adjtime aliases aliases.db alternatives ambot-installing ambot-install-machine ambot-machine-id anacrontab asciidoc asound.conf audisp audit bash_completion.d bashrc binfmt.d centos-release centos-release.bak centos-release-upstream chkconfig.d cron.d cron.daily
示例5:列印內容中帶有雙引號
[root@localhost etc] echo "hello \"world\""
hello "world"
示例6:重定向到文件+時間表示法
[root@localhost ~] echo $(date)
Tue May 24 11:15:05 CST 2022
[root@localhost ~] echo $(date "+%Y-%m-%d %H:%M:%S")
2022-05-24 11:15:17
[root@localhost ~] echo $(date "+%Y-%m-%d %H:%M:%S") > time.txt 文件不存在時會自動創建文件
[root@localhost ~] cat time.txt
2022-05-24 11:15:35
示例7:顏色輸出
命令行方式echo -e "\e[背景顏色;文字顏色;顯示方式m字元串\e[0m"
echo -e "\033[41;37m ivanlee \033[0m"
, 其中41的位置代表底色, 37的位置是代表字的顏色
註:
1、字背景顏色和文字顏色之間是英文的“""”
2、文字顏色後面有個m
3、字元串前後可以沒有空格,如果有的話,輸出也是同樣有空格
字體顏色 格式:echo -e "\033[fontcolor;字元串內容\033[0m"
背景著色 格式:echo -e "\033[backcolor; 字元串內容\033[0m"
同時設置字體和背景顏色 格式:echo -e "\033[backcolor;fontcolor 字元串內容\033[0m"
顏色具體內容:
文字 背景
黑色: 30 40
紅色: 31 41
綠色: 32 42
黃色: 33 43
藍色: 34 44
粉色: 35 45
青色: 36 46
白色: 37 47
灰色: 38 48
特殊情況:
97(文字):比37更淺的白色
90,92,93,94,96(文字):不同深淺的灰色
91(文字):橙色
95(文字):紫色
文字為41-47時,文字顏色為灰色,背景顏色為31-37的顏色
最後面控制選項說明
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\033[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m — \33[37m 設置前景色
\033[40m — \33[47m 設置背景色
\033[nA 游標上移n行
\033[nB 游標下移n行
\033[nC 游標右移n行
\033[nD 游標左移n行
\033[y;xH設置游標位置
\033[2J 清屏
\033[K 清除從游標到行尾的內容
\033[s 保存游標位置
\033[u 恢復游標位置
\033[?25l 隱藏游標
\033[?25h 顯示游標
-
無屬性輸出
-
閃爍 一直閃爍
本文來自博客園,作者:ivanlee717,轉載請註明原文鏈接:https://www.cnblogs.com/ivanlee717/p/16305161.html