Linux終端打印命令使用介紹


常用linux打印命令

日常使用中或shell腳本中linux終端打印命令有echo和printf。


 

 echo命令

功能說明:顯示文字。
語   法:echo [-ne][字符串]或 echo [--help][--version]
補充說明:echo會將輸入的字符串送往標准輸出。輸出的字符串間以空白字符隔開, 並在最后加上換行號。
參   數:-n 不要在最后自動換行
               -e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
文字輸出:
   \a 發出警告聲;
   \b 刪除前一個字符;
   \c 最后不加上換行符號;
   \f 換行但光標仍舊停留在原來的位置;
   \n 換行且光標移至行首;
   \r 光標移至行首,但不換行;
   \t 插入tab;
   \v 與\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八進制)所代表的ASCII字符;
–help 顯示幫助
–version 顯示版本信息

echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
該命令的一般格式為: echo [ -n ] 字符串
其中選項n表示輸出文字后不換行;字符串能加引號,也能不加引號。用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分割。

 

echo要變換顏色的時候,要使用參數-e

格式: echo -e "\033[字背景顏色;字體顏色m字符串\033[0m"

例如:

echo -e "\033[41;36m something here \033[0m"

其中41的位置代表底色, 36的位置是代表字的顏色

那些ascii code 是對顏色調用的始末.

\033[ ; m …… \033[0m

讓字體變為紅色並且不停的閃爍

#echo -e "\033[31m \33[05m 請確認是否要停止當前的squid進程,輸入 [Y/N] \033[0m"

或者

#echo -e "\033[31m \033[05m 請確認是否要停止當前的squid進程,輸入 [Y/N] \033[0m"

字背景顏色范圍:40----49

40:黑

41:深紅

42:綠

43:黃色

44:藍色

45:紫色

46:深綠

47:白色

字顏色:30-----------39

30:黑

31:紅

32:綠

33:黃

34:藍色

35:紫色

36:深綠

37:白色

===============================================ANSI控制碼的說明

\33[0m 關閉所有屬性

\33[1m 設置高亮度

\33[4m 下划線

\33[5m 閃爍

\33[7m 反顯

\33[8m 消隱

\33[30m -- \33[37m 設置前景色

\33[40m -- \33[47m 設置背景色

\33[nA 光標上移n行

\33[nB 光標下移n行

\33[nC 光標右移n行

\33[nD 光標左移n行

\33[y;xH設置光標位置

\33[2J 清屏

\33[K 清除從光標到行尾的內容

\33[s 保存光標位置

\33[u 恢復光標位置

\33[?25l 隱藏光標

\33[?25h 顯示光標

 

或參考這篇博客,也寫的不錯:

Linux的shell中echo改變輸出顯示樣式 - 生活費 - 博客園
http://www.cnblogs.com/276815076/archive/2011/05/11/2043367.html

 


 

printf命令

Linux提供一個功能更強大,更靈活的打印命令printf。printf和C語言的使用方式類似。和echo不一樣,它不會在最后自動加上換行,需要寫入命令中。例如printf "Hello, world/n"。printf的命令格式如下:

 

printf format-string [arguments]

 

  例子為:printf "%s, %s/n" hello world。如果格式需要的參數比后面給出的多,超出的部分為0或者null。格式如下。

%c:ASCII字符,如果參數給出字符串,則打印第一個字符 
%d:10進制整數 
%i:同%d 
%e:浮點格式([-]d.精度[+-]dd) 
%E:浮點格式([-]d.精度E[+-]dd) 
%f:浮點格式([-]ddd.precision) 
%g:%e或者%f的轉換,如果后尾為0,則刪除它們 
%G:%E或者%f的轉換,如果后尾為0,則刪除它們 
%o:8進制 
%s:字符串 
%u:非零正整數 
%x:十六進制 
%X:非零正數,16進制,使用A-F表示10-15 
%%:表示字符"%"

  如果需要限定輸出的寬度,格式為%flags width.precision format-specifier,width是整數,右邊對齊,如果需要左邊對齊,在前面加“-”,例如"%-20s"表示從左邊開始對齊,寬度為20,如果字符串長度少於20,通過空格補齊。precision在浮點值中提供四舍五入。例如%5.6G,長度為5,精度為6。精度是可選的。長度和精度的值可以參數中指定,例如printf "%*.*G/n" 5 6 $myvalue。長度指顯示中占的字符長度,與字符長度的同義。如果長度比實際的少,例如實際字符長度更大或者所要求的精度更大,則顯示按實際長度。

%d, %I, %o, %u, %x, %X:在里面使用精度,表示最小顯示的數字。如果顯示的數字比需求少,則補充0。缺省值為1. 
%e, %E:在里面使用精度,表示最小顯示的數字。如果顯示的數字比需求少,在小數點后面補充0。缺省值為10.精度度為0經隱藏小數點。 
%f:在這里的精度,表示小數點后面的數字的數目。 
%g, %G:這里的精度,表示最大的有效數字的數目。 
%s:這里的精度,表示最大的字符數目。

  在前面,介紹了”-“作為左對齊,下面介紹這些特殊符號

-:左對齊 
space:正數前面加空格,負數前面加符號,例如12.12,|% f|,顯示| 12.120000|,注意前面留了一個空格。例如-12.12,|% f|,顯示|-12.120000| 
+:對於數碼給予正負號。 
#:給出另一種格式:

  • %o以8進制顯示整數,而%#o則在前面加上零,表明是八進制,例如12,顯示014
  • %x或者%X以16進制的方式顯示整數,而%#x或者%#X,在16進制的整數前面加上0x或者0X來表示,例如12,顯示0XC
  • %#e,%#E, %#f,將只以十進制顯示
  • %#g,%#G,將不刪除最后無關的補齊0,例如12.1200,將全部顯示,而不是12.12。
0:對於數目,不使用空格,而使用0來作為補齊。

  介紹兩個特別的字符顯示格式%b和%q。

 

%b:表示解析字符串的特殊的字符,包括/n等等。例如printf "%s/n" 'hello/nworld',顯示hello/nworld,要將/n作為換行符,則需要用printf "%b/n" 'hello/nworld' 。

%q:printf "%q/n" "greetings to the world"顯示為greetings/ to/ the/ world,可以作為shell的輸入。


 

寫在后面的小筆記:

有時候想在shell代碼中寫個提示,即打印一個命令的執行結果,例如打印“系統中oracle的進程個數是:135個”這句話:

[aaa@cc_svr ~]$ echo “系統中oracle的進程個數是:$(ps -ef|wc -l)個”
“系統中oracle的進程個數是:135個”
[aaa@cc_svr ~]$ echo "系統中oracle的進程個數是:`ps -ef|wc -l` 個"
系統中oracle的進程個數是:135 個
[aaa@cc_svr ~]$ echo -n "系統中oracle的進程個數是:";echo -n `ps -ef|wc -l`;echo "個";
系統中oracle的進程個數是:135個
[aaa@cc_svr ~]$ 

在echo中的命令替換部分加上雙“`”(~鍵)號,即可執行語句里面的命令部分。

借助echo -n不換行,將換行的輸入連成一句話,也可以使用printf變量輸出。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM