【轉】Linux之printf命令


轉自:http://blog.chinaunix.net/uid-9525959-id-2001528.html

 

printf FORMAT [ARGUMENT]...

printf OPTION

 

【功能】

格式化並打印數據.

 

【舉例】

*打印整數和字符串:

$printf 'the integer is:%d\nthe string is: %s\n' 3 "test"

輸入之后,輸出如下:

the integer is:3

the string is: test

這里,使用單引號雙引號都行;注意最后要有回車,否則下一個提示行和輸出跑到一行了。

 

*不用引號打印一個參數的情況:

$printf %s test

輸入之后,輸出如下:

testquietheart@ubuntu$

從這里可以看出來,test是待打印的字符,quietheart@ubuntu$是我的機器命令提示符號,兩者在一行。

 

 

*不用引號打印多個參數的情況:

$printf %s first second

輸入之后,輸出如下:

firstsecondquietheart@ubuntu$

 

*格式只指定了一個,但是多余一個參數:

$printf "%s\n" first second

輸入之后,輸出如下:

first

second

注意這里的回車,字符串仍舊可以輸出。

 

*指定的格式少於參數:

$printf "%s %s %s %s\n" a b c d e f g h i j k l m n

輸入之后,輸出如下:

a  b c d

e  f  g h

i   j  k l

m n

這里,該情況是前面指定一個格式的情況擴展。

 

*類似echo -n的輸出,不自動換行:

$my_var="abc123" 

$printf $my_var 

輸入之后輸出如下:

abc123quietheart@ubuntu$

如果echo輸出會自動換行,這里沒有自動換行,這和echo -n的效果相同。

 

*類似echo的輸出,自動換行:

$printf "$my_var \n" 

輸入之后,輸出如下:

abc123  

或者$printf '$my_var \n' 

輸入之后,輸出如下:

$my_var  

這里,這兩個命令類似於echo,需要注意的是不能如下這樣:

$printf "%s \n" $var 

因為,變量不可以如此輸出,因為printf命令的ARGUMENT認字符串。

 

*如果參數沒寫上,那么就用NULL或者0來代替:

$printf "%s and %d \n"  

輸入之后,輸出如下:

   and 0 

 

【描述】

這個函數類似C語言里的printf,先指定格式,再寫上變量。

不同點,SHELL命令的printf

1.沒有C語言函數里必須的括號;

2.一般情況下,指定FORMAT時候,使用單引號和雙引號均可;

3.某些情況下,不加引號也可以,但是無法處理負責格式;

4.某些情況下,FORMAT可以重用,可以將所有參數都轉換;

5.輸出變量參數之間使用空格或tab分割,不用逗號;

6.某種程度上可以替代echo.


免責聲明!

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



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