W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
格式化并輸出結(jié)果。
printf [-v var] format [arguments]
-v var:將結(jié)果輸出到變量var中而不是輸出到標準輸出。
format:輸出格式。
arguments:一到多個參數(shù)。
轉(zhuǎn)義序列:除了支持printf(1)和printf(3)的轉(zhuǎn)義序列,內(nèi)建printf還支持以下轉(zhuǎn)義序列:
%b 展開參數(shù)中的反斜杠轉(zhuǎn)義字符。
%q 將參數(shù)擴起以用作shell輸入。
%(fmt)T 根據(jù)strftime(3)中的轉(zhuǎn)義字符來輸出日期時間字符串。
返回狀態(tài)為成功除非給出了非法選項、寫錯誤、賦值錯誤。
# %-5s 格式為左對齊且寬度為5的字符串代替('-'表示左對齊),不使用則默認右對齊。
# %-4.2f 格式為左對齊寬度為4,保留兩位小數(shù)。
printf "%-5s %-10s %-4s\n" NO Name Mark
printf "%-5s %-10s %-4.2f\n" 01 Tom 90.3456
printf "%-5s %-10s %-4.2f\n" 02 Jack 89.2345
printf "%-5s %-10s %-4.2f\n" 03 Jeff 98.4323
# 輸出
NO Name Mark
01 Tom 90.35
02 Jack 89.23
03 Jeff 98.43
# %b %q %(fmt)T 的例子。
# see it again with a newline.
printf "%s\n" 'hello world'
# 展開換行符,和上面的結(jié)果一樣。
printf "%b" 'hello world\n'
printf '%q\n' 'a b c'
# 輸出
a\ b\ c
# %z為時區(qū),%n為換行符。
printf "%(%F %T %z%n)T"
# 輸出
2019-09-10 01:48:07 +0000
printf FORMAT [ARGUMENT]...
printf OPTION
--help 顯示幫助信息并退出。
--version 顯示版本信息并退出。
format:輸出格式。
arguments:一到多個參數(shù)。
在這里忽略了(%b %q),如果你安裝的coreutils版本支持它們,那么請參考上面的例子。
支持的轉(zhuǎn)義序列:
\" 雙引號
\\ 反斜杠
\a 響鈴
\b 退格
\c 截斷輸出
\e 退出
\f 翻頁
\n 換行
\r 回車
\t 水平制表符
\v 豎直制表符
\NNN 八進制數(shù) (1到3位數(shù)字)
\xHH 十六進制數(shù) (1到2位數(shù)字)
\uHHHH Unicode字符附加4位十六進制數(shù)字
\UHHHHHHHH Unicode字符附加8位十六進制數(shù)字
%% 百分號
以及'diouxXfeEgGcs'中的一個結(jié)尾的C格式規(guī)范,將被轉(zhuǎn)換為正確的類型并處理可變寬度。
# 使用 /usr/bin/printf 確保調(diào)用的不是內(nèi)建命令。
# 當然,在你關(guān)閉內(nèi)建printf以及確認當前環(huán)境沒有printf函數(shù)的情況下,可直接使用printf,詳見末尾"注意"的鏈接。
# 按行打印數(shù)組和關(guān)聯(lián)數(shù)組的下標及值。
# 聲明數(shù)組可以不加'declare -a'或'local -a'(在函數(shù)內(nèi)聲明的局部變量)。
arr=('line1' 'line2')
/usr/bin/printf "%s\n" ${!arr[@]}
# 輸出下標
0
1
/usr/bin/printf "%s\n" ${arr[@]}
# 輸出值
line1
line2
#聲明關(guān)聯(lián)數(shù)組(也就是字典)必須加'declare -A'或'local -A'(在函數(shù)內(nèi)聲明的局部變量)。
declare -A assoc_arr=(['key1']='value1' ['key2']='value2')
/usr/bin/printf "%s\n" ${!assoc_arr[@]}
# 輸出鍵。
key2
key1
/usr/bin/printf "%s\n" ${assoc_arr[@]}
# 輸出值。
value2
value1
返回狀態(tài)為成功除非給出了非法選項等。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: