每天一個linux命令:echo

每天一個linux命令:echo

更多精彩請關注:www.zicreate.com

1.命令功能

echo 是最常用也差不多是最簡單的命令,通常用在腳本語言和批處理文件中來在標準輸出或者文件中顯示一行文本或者字符串。

2.命令格式

echo [選項] [字符串]

3.命令參數

-n 不要在最後自動換行
-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
文字輸出:
   \a 發出警告聲;
   \b 刪除前一個字符;
   \c 最後不加上換行符號;
   \f 換行但光標仍舊停留在原來的位置;
   \n 換行且光標移至行首;
   \r 光標移至行首,但不換行;
   \t 插入tab;
   \v\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八進制)所代表的ASCII字符;

4.使用場景

場景1:在標準輸出上顯示字符串

$ echo "welcome\nwww.zicreate.com\n"
welcome\nwww.zicreate.com\n
$ echo -e "welcome\nwww.zicreate.com"
welcome
www.zicreate.com

場景2:使用重定向符來輸出到一個文件而不是標準輸出

在操作 Linux 內核參數時經常需要使用 echo 改變某個參數的值,例如開啓 Linux 內核的 NAT 轉發功能:

$ echo 1 > /proc/sys/net/ipv4/ip_forward

清空、替換文件內容時經常這麼用:

$ echo “” > file.txt

向文件追加內容時經常這麼用:

$ echo “something” >> file.txt

擴展

(1)用echo命令打印帶有色彩的文字

文字色:

echo -e “\e[1;31mThis is red text\e[0m”
This is red text
\e[1;31m 將顏色設置爲紅色
\e[0m 將顏色重新置回
顏色碼:重置=0,黑色=30,紅色=31,綠色=32,黃色=33,藍色=34,洋紅=35,青色=36,白色=37

背景色:

echo -e “\e[1;42mGreed Background\e[0m”
Greed Background
顏色碼:重置=0,黑色=40,紅色=41,綠色=42,黃色=43,藍色=44,洋紅=45,青色=46,白色=47

文字閃動:

echo -e “\033[37;31;5mMySQL Server Stop…\033[39;49;0m”
紅色數字處還有其他數字參數:0 關閉所有屬性、1 設置高亮度(加粗)、4 下劃線、5 閃爍、7 反顯、8 消隱

(2)printf

printf命令格式化並輸出結果到標準輸出。學過C語言的童鞋對這個命令應該非常熟悉。

命令格式

printf(選項)(參數)

格式替代符

%b 相對應的參數被視爲含有要被處理的轉義序列之字符串。
%c ASCII字符。顯示相對應參數的第一個字符
%d, %i 十進制整數
%e, %E, %f 浮點格式
%g %e或%f轉換,看哪一個較短,則刪除結尾的零
%G %E或%f轉換,看哪一個較短,則刪除結尾的零
%o 不帶正負號的八進制值
%s 字符串
%u 不帶正負號的十進制值
%x 不帶正負號的十六進制值,使用a至f表示10至15
%X 不帶正負號的十六進制值,使用A至F表示10至15
%% 字面意義的%

轉義序列

\a 警告字符,通常爲ASCII的BEL字符
\b 後退
\c 抑制(不顯示)輸出結果中任何結尾的換行字符(只在%b格式指示符控制下的參數字符串中有效),而且,任何留在參數裏的字符、任何接下來的參數以及任何留在格式字符串中的字符,都被忽略
\f 換頁(formfeed)
\n 換行
\r 回車(Carriage return)
\t 水平製表符
\v 垂直製表符
\\ 一個字面上的反斜槓字符
\ddd 表示1到3位數八進制值的字符,僅在格式字符串中有效
\0ddd 表示1到3位的八進制值字符      

示例:

$ printf "%-5s %-10s %-4s\n" welcome to zicteate
welcome to         zicteate 
$ printf "%-5s %-10s %-4.2f\n" 01 Tom 90.3456
01    Tom        90.35

echo 與 printf 的區別:
(1)首先echo是回顯,自帶換行的;而printf只是打印出來,沒有換行;
(2)echo 與 printf 使用變量的方式不一樣;
例如:定義變量 w=“www.zicreate.com”

$  w=“www.zicreate.com”
$ echo $w
“www.zicreate.com”
$ printf "%s\n" $w
“www.zicreate.com

注意:

  1. printf 命令默認輸出結果沒有換行符,需要手工添加\n。
  2. printf 命令後面不能接受管道符參數,如:ls | printf ‘%s’ 是錯誤的。
  3. print 命令後可以跟系統命令執行的結果, 如:printf ‘%s’ $(ls)’
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章