<span id="vexk9"><table id="vexk9"></table></span>

      printf

      格式化并輸出結(jié)果。

      目錄

      內(nèi)建命令

      概要

      printf [-v var] format [arguments]
      

      主要用途

      選項

      -v var:將結(jié)果輸出到變量var中而不是輸出到標(biāo)準(zhǔn)輸出。
      

      參數(shù)

      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的字符串代替('-'表示左對齊),不使用則默認(rèn)右對齊。
      # %-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
      

      注意

      1. 該命令是bash內(nèi)建命令,相關(guān)的幫助信息請查看help命令。

      外部命令

      概要

      printf FORMAT [ARGUMENT]...
      printf OPTION
      

      主要用途

      選項

      --help 顯示幫助信息并退出。
      --version 顯示版本信息并退出。
      

      參數(shù)

      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)建命令。
      # 當(dāng)然,在你關(guān)閉內(nèi)建printf以及確認(rèn)當(dāng)前環(huán)境沒有printf函數(shù)的情況下,可直接使用printf,詳見末尾"注意"的鏈接。
      
      # 按行打印數(shù)組和關(guān)聯(lián)數(shù)組的下標(biāo)及值。
      
      # 聲明數(shù)組可以不加'declare -a'或'local -a'(在函數(shù)內(nèi)聲明的局部變量)。
      arr=('line1' 'line2')
      /usr/bin/printf "%s\n" ${!arr[@]}
      # 輸出下標(biāo)
      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)為成功除非給出了非法選項等。

      注意

      1. 該命令是GNU coreutils包中的命令,相關(guān)的幫助信息請查看man -s 1 printfinfo coreutils 'pwd invocation'

      2. 啟動或關(guān)閉內(nèi)建命令請查看enable命令,關(guān)于同名優(yōu)先級的問題請查看builtin命令的例子部分的相關(guān)討論。

      3. 我通過和bug-bash@gnu.org的交流,得到了關(guān)于這幾個格式說明符%b %q %(fmt)T的解釋:

        printf(1)中的%b格式說明符是printf(3)支持的格式之外增加的一個POSIX特性。

        %q和%T說明符是非標(biāo)準(zhǔn)的,并且不受所有獨立實現(xiàn)的printf的支持。

        更多細(xì)節(jié)請參考鏈接:

      主站蜘蛛池模板: 色综合久久精品亚洲国产| 亚洲综合精品第一页| 丁香色欲久久久久久综合网| 国产成人亚洲综合无码| 亚洲综合中文字幕无线码| 色婷婷99综合久久久精品| 九色综合九色综合色鬼| 狠狠色综合久久婷婷| 色噜噜狠狠狠狠色综合久一| 国产综合精品女在线观看| 亚洲国产欧洲综合997久久| 久久久久综合中文字幕| 天天综合天天添夜夜添狠狠添| 亚洲综合亚洲综合网成人| 久久综合AV免费观看| 色与欲影视天天看综合网| 国产天天综合永久精品日| 综合偷自拍亚洲乱中文字幕| 一本大道久久a久久精品综合| 亚洲 自拍 另类小说综合图区 | 色噜噜狠狠色综合欧洲selulu | 久久综合亚洲色HEZYO国产| 九九久久99综合一区二区| 久久久久久久综合狠狠综合| 99久久国产综合精品女图图等你| 国产天天综合永久精品日| 热综合一本伊人久久精品 | 综合网日日天干夜夜久久| 色综合久久综精品| 91精品国产色综合久久不卡蜜| 久久亚洲精品成人综合| 伊人久久大香线蕉综合电影网| 亚洲av日韩综合一区二区三区| 狠狠色丁香婷婷综合| 国产一级a爱做综合| 人人狠狠综合久久亚洲高清| 国产精品亚洲综合久久| 狠狠色伊人亚洲综合网站色| 亚洲综合精品成人| 久久婷婷五月综合成人D啪| 色先锋资源久久综合5566|