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