printf#

printf 是包含在 GNU Coreutils 內的格式化輸出工具。

printf 是比 echo 更強大且穩定的輸出指令。它源自於 C 語言的 printf() 函式,允許使用者透過「格式字串(Format String)」精確控制輸出格式,包含對齊方式、數字進位轉換、寬度設定等。在撰寫跨平台的 Shell 腳本時,printf 通常比 echo 更受推薦。

Install#


Setting in up#


Operate#

格式化字串輸出(\n 必須手動加入才會換行)#

printf “Name: %s\nAge: %d\n” “John” 25

靠左對齊並設定欄位寬度#

printf “%-10s %-5d\n” “ItemA” 100

數字進位轉換(將 255 轉為 16 進位)#

printf “Hex: %x\n” 255

參數 (格式控制)範例指令說明
%sprintf "%s" "text"字串輸出。最基本的字串替換。
%dprintf "%d" 123十進位整數。輸出整數值。
%fprintf "%.2f" 3.14浮點數。可指定小數點後位數。
%xprintf "%x" 255十六進位。將十進位轉為十六進位輸出。
\nprintf "text\n"換行符號。printf 預設不換行,需手動加上。
\tprintf "a\tb"水平跳格。輸出 Tab 字元。
格式說明範例
printf "%-10s"靠左對齊且寬度 10printf "%-10s: %d" "Score" 95
printf "%05d"不足位數自動補零printf "%05d" 42 (輸出 00042)
printf "\x41"透過 Hex 碼輸出字元printf "\x41" (輸出 A)

Reference#

Official docs: