Linux中printf命令使用例項

安全劍客發表於2020-07-15
在編寫 時,我們使用echo列印到標準輸出。echo是一個簡單的 ,但其功能有限,想要更好的控制輸出格式,可以使用printf 。

printf的語法格式:

# printf 格式 引數

下面是一個例子:

[root@localhost ~]# printf "姓名:%s\n身高:%dcm\n體重:%dkg\n" "小明" "180" "75"
姓名:小明
身高:180cm
體重:75kg

Linux中printf命令使用例項Linux中printf命令使用例項
"姓名:%s\n身高:%dcm\n體重:%dkg\n"是格式, "小明" "180" "75"是引數。格式包含了 %s , %d都是格式轉換符, %d對應的引數必須是十進位制數。 %s對應的引數必須是字串。還包括了三個 \n換行符,printf命令預設不會新增還行符號,需要手動新增。

常用的跳脫字元
  • \" - 轉義後的雙引號
  • \\ - 轉義後的反斜槓
  • \b - 退格符
  • \n - 換行符
  • \r - 回車符
  • \t - 水平製表符
  • \v - 垂直製表符
  • %% - 單個%符號
常用的型別轉換符

型別轉換說明符是一個字元,用於指定如何解釋相應的引數,該字元是必需新增的,以下是顯示所有型別轉換及其作用的列表:

  • %d - 將引數列印為十進位制整數
  • %f - 將引數列印為浮點數
  • %s - 將引數列印為字串
  • %x - 將引數列印為十六進位制整數
  • %o - 將引數列印為八進位制整數
例項
例項一

該例子使用%d,%x,%o將後面提供的引數轉化為十進位制、十六進位制、八進位制。

[root@localhost ~]# printf "Decimal: %d\nHex: %x\nOctal: %o\n" 100 100 100
Decimal: 100
Hex: 64
Octal: 144
例項二

下面例子使用 %.2f,其中 .2指引數保留兩位小數, f將引數列印為浮點數。

[root@localhost ~]# printf "%.2f\n" 3.1415926
3.14
例項三

下面例子中使用了水平製表符 \t。例子中給的引數超過了格式中給出的轉換符的數量,多出的引數仍會按照格式輸出。

[root@localhost ~]# printf "%s \t %s \t %s\n" "姓名" "性別" "年齡" "小明" "男" "18" "小紅" "女" "19" "小藍" "男" "18"
姓名   性別   年齡
小明   男   18
小紅   女   19
小藍   男   18

Linux中printf命令使用例項Linux中printf命令使用例項

例項四

例項中, %-10s , %-8d其中 -表示靠左對齊,預設情況下是靠右對齊。 10和8表示佔用10或者8個字元寬度。 \e[1,30;47m ..... \e[0m表示使用粗體字、黑色字型、白色背景,後面的 \e[0,m表示重置。

[root@localhost ~]# cat p.sh 
#!/bin/bash
printf "\e[1;30;47m%-10s %-10s\e[0m\n" "姓名" "年齡"
printf "\e[36;47m%-10s %-8d\e[0m\n" "小明" "18"
printf "\e[31;47m%-10s %-8d\e[0m\n" "小紅" "19"
printf "\e[34;47m%-10s %-8d\e[0m\n" "小藍" "19"

Linux中printf命令使用例項Linux中printf命令使用例項

總結

在編寫shell 時,我們使用echo列印到標準輸出。echo是一個簡單的命令,但其功能有限,想要更好的控制輸出格式,可以使用printf命令。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2704590/,如需轉載,請註明出處,否則將追究法律責任。

相關文章