您好,登錄后才能下訂單哦!
導讀 | 在編寫 shell 腳本時,我們使用echo打印到標準輸出。echo是一個簡單的 命令,但其功能有限,想要更好的控制輸出格式,可以使用printf 命令。 |
printf的語法格式:
# printf 格式 參數
下面是一個例子:
[root@localhost ~]# printf "姓名:%s\n身高:%dcm\n體重:%dkg\n" "小明" "180" "75" 姓名:小明 身高:180cm 體重:75kg
"姓名:%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
實例中,
%-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"
在編寫shell 腳本時,我們使用echo打印到標準輸出。echo是一個簡單的命令,但其功能有限,想要更好的控制輸出格式,可以使用printf命令。
本文原創地址: https://www.linuxprobe.com/linux-printf-example.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。