shell printf命令詳解

2021-07-11 21:07:15 字數 1702 閱讀 6269

基本格式

printf

format [ string... ]

用途:為了從shell指令碼中產生輸出。由於printf的行為是由posix標準所定義的,因此printf比echo具有更好的可移植性

printf的轉義序列(使用方法與c語言類似):

\a 警告字元,通常為ascii的bel字元

\b 後退(一位)

\c 抑制(不顯示)輸出結果中任何結尾的換行字元(只在%b格式指示符控制下的引數字串中有效),而且,任何留在引數裡的字元、任何接下來的引數以及任何留在格式字串中的字元,都被忽略

\f 換頁(formfeed)

\n 換行

\r 回車(carriage return)

\t 水平製表符

\v 垂直製表符

\ 乙個字面上的反斜槓字元

\ddd 表示1到3位數八進位制值的字元,僅在格式字串中有效

\0ddd 表示1到3位的八進位制值字元

printf

"string: <%e>\n"

"a\nb"

#出現在引數字串裡的轉義序列不會被解釋,%s代代表著後面的引數字串,不會被解析

printf

"string: <%b>\n"

"a\nb"

#沒錯總是又奇葩的,使用%b時後面的引數字串會被解析,幹

printf格式指示符

%b 相應的引數被視為有要處理的轉義序列的字串,看上面的例子

%c ascll字元,顯示相對應引數的第乙個字元

%d,%i 十進位制整數

%e 浮點格式

%e 浮點格式

%f 浮點格式

%g %e或%f轉換,看哪個比較短,則刪除結尾的零

%g %e或%f轉換,看哪個比較短,則刪除結尾的零

%o 不帶正負號的八進位制轉換

%s 字串格式

%u 不帶正負號的十進位制值

%x 不帶正負號的十六進製制。使用a至f表示10至15

%x 不帶正負號的十六進製制。使用a至f表示10至15

%% 字面意義的%

指定字段寬度

printf

"|%10s|\n" hello #欄位預設向右對齊,空格十個單位

printf

"|%-10s|\n" hello #新增上符號,就是向左對齊

精度的意義

printf

"%.10d\n"

15#列印的位數最小為10,不夠補零

printf

"%.2f\n"

0.123456

#保留兩位小數

printf標誌

space eg:printf

"|% d| |% d|\n"

15 -15

#在正數前面新增乙個space,負數新增乙個負號

+ eg:printf

"%+d %+d\n"

15 -15

#總是在資料前面放上乙個正負號。

0 eg:printf

"%05d\n"

15#以零填補輸出

菜鳥Shell printf 命令

上一章節我們學習了 shell 的 echo 命令,本章節我們來學習 shell 的另乙個輸出命令 printf。printf 命令模仿 c 程式庫 library 裡的 printf 程式。printf 由 posix 標準所定義,因此使用 printf 的指令碼比使用 echo 移植性好。pri...

shell printf命令 格式化輸出語句

printf 命令用於格式化輸出,是echo命令的增強版。它是c語言printf 庫函式的乙個有限的變形,並且在語法上有些不同。注意 printf 由 posix 標準所定義,移植性要比 echo 好。如同 echo 命令,printf 命令也可以輸出簡單的字串 printf hello,shell...

shell printf命令 格式化輸出語句

printf 命令用於格式化輸出,是echo命令的增強版。它是c語言printf 庫函式的乙個有限的變形,並且在語法上有些不同。注意 printf 由 posix 標準所定義,移植性要比 echo 好。如同 echo 命令,printf 命令也可以輸出簡單的字串 printf hello,shell...