国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

bash 中的格式化輸出命令:printf

系統 Linux
echo 命令不支持格式化輸出。要格式化輸出,可以使用 printf 命令。

在 Linux 命令行中最簡單的打印方法是使用 echo 命令:

echo "Value of var is $var"

然而,echo 命令不支持格式化輸出。要格式化輸出,可以使用 printf 命令,bash 中的 printf 與 c/c++ 中的printf 命令類似:

printf "My brother %s is %d years old.\n" Prakash 21

其輸出如下所示:

圖片

第一個參數 %s 接受一個字符串,第二個參數 %d 接受的是一個十進制整數,就跟 c/c++ 中的一樣。接下來我們展示一些 bash printf 命令的例子。

bash 中的 printf 命令

printf 命令的語法如下:

printf format [arguments]

這里,format 是一個字符串,用于確定后續值的顯示方式。

在上面的例子中 printf "My brother %s is %d years old.\n" Prakash 21,前面的語句 "My brother %s is %d years old.\n" 是格式,后面的 Prakash21 是參數,這些參數用于替換前面格式中的占位符 %s %d

在最簡單的方式中,printf 的使用跟 echo 類似:

printf "Hello World\n"

注意到最后面的換行符 \n 了嗎?echo 和 printf 命令的區別在于,echo 命令會自動在末尾添加一個換行符,但是 printf 命令需要手動添加。

圖片

要特別注意參數的類型和數量

這里需要注意,格式化字符串通常會嘗試應用于所有參數。看下面的例子:?

$ printf "Hello, %s! \n" Abhishek Prakash
Hello, Abhishek!
Hello, Prakash!

圖片

同時,也需要盡量匹配格式化字符串中所期望的數據類型:

圖片

通過上面的例子可以看到,如果沒有找到匹配的參數,會使用默認值,默認字符串為 null,整數為 0.?

printf "Hi %s, your room number is %d. \n" Abhishek Prakash 131
bash: printf: Prakash: invalid number
Hi Abhishek, your room number is 0.
Hi 131, your room number is 0.

上面代碼中,Abhishek Prakash 會被用于第一個參數,131 會被用于第二個參數。

當它找到一個字符串(Prakash)而不是整數時,就會報錯,但它會繼續顯示第二個參數為默認值0的輸出。

類似地,它將131視為第二組參數中的字符串,由于第二個參數不存在,因此它默認為0。

規范格式字符

有幾個格式說明符可用于以所需格式顯示輸出。以下是一些最常見的:

  字符   

  用途

  %s

  String

  %c

  Single character

  %d

  Integers

  %o

  Octal integers

  %x

  Hexadecimal integers

  %f

  Floating point

  %b

  String with backslash escape character

  %%

  Percent sign

一些例子

下面是一些比較簡單的例子,通過命令就可以看出它的用法。?

$ printf "The octal value of %d is %o\n" 30 30
The octal value of 30 is 36

讓我們看看使用 %b 說明符來正確解釋反斜杠轉義字符。?

$ printf "String with backslash: %s\n" "Hello\nWorld!"
String with backslash: Hello\nWorld!

上面例子中 %s 正常使用,這個沒有什么好解釋的,但是參數中的 \n 換行符卻沒有起作用。這時候,需要用到 %b:

$ printf "String with backslash: %b\n" "Hello\nWorld!"
String with backslash: Hello
World!

當使用 %c 時,它一次只讀取一個字符:

$ printf "Character: %c\n" a
Character: a
$ printf "Character: %c\n" a b c
Character: a
Character: b
Character: c
$ printf "Character: %c\n" abc
Character: a

使用修飾符以特定樣式顯示 printf 輸出

有一些字符可以用于根據你的喜好來設置輸出的樣式。

# 用于顯示八進制和十六進制數字

早些時候,我們使用過 %o 將十進制轉為八進制,但是輸出卻不能很清楚的看出來這是一個八進制,所以現在我們使用修飾符 # 來正確的顯示八進制和十六進制的數字。?

$ printf "%d is %#o in octal and %#x in hexadecimal\n" 30 30 30
30 is 036 in octal and 0x1e in hexadecimal

正整數的空格修飾符

可以在 % d 之間加一個空格來顯示帶前導空格的正整數,當有正數和負數時,這樣顯示會更規范,如下所示:?

$ printf "%d \n%d \n%d \n" 10 -10 10
10
-10
10
$ printf "% d \n%d \n% d \n" 10 -10 10
10
-10
10

寬度修改器

寬度修飾符是一個整數,用于指定參數的最小字段寬度。

默認情況下,它是右對齊的:?

$ printf "%10s| %5d\n" Age 23
Age| 23

可以使用中劃線 - 來讓其左對齊:

$ printf "%-10s| %-5d\n" Age 23
Age | 23

設置精度

可以使用一個點 . 來指定 %d%u%o%x 顯示的最小位數,不足位的左側以 0 補充。如下所示:?

$ printf "Roll Number: %.5d\n" 23
Roll Number: 00023

如果對字符串使用精度修飾符,它會指定字符串的最大長度。如果字符串較長,則會在顯示中被截斷。?

$ printf "Name: %.4s\n" Abhishek
Name: Abhi

還可以組合寬度和精度修改器:

$ printf "Name: %.4s\n" Abhishek
Name: Abhi
$ printf "Name: %10.4s\n" Abhishek
Name: Abhi

以表格格式顯示輸出

下面我們看一個稍微復雜一點的例子,在 bash 中使用 printf 命令打印如下表格:

  Name

  ID

  Age  

  Grades  

Sherlock Holmes

0000122

23

A

James Bond

0000007

27

F

Hercules Poirot

0006811

59

G

Jane Marple

1234567

71

C

下面是我編寫的腳本,大家根據各自情況可以嘗試一下:?

#/bin/bash
seperator=--------------------
seperator=$seperator$seperator
rows="%-15s| %.7d| %3d| %c\n"
TableWidth=37
printf "%-15s| %-7s| %.3s| %s\n" Name ID Age Grades
printf "%.${TableWidth}s\n" "$seperator"
printf "$rows" "Sherlock Holmes" 122 23 A
printf "$rows" "James Bond" 7 27 F
printf "$rows" "Hercules Poirot" 6811 59 G
printf "$rows" "Jane Marple" 1234567 71 C

運行,其輸出如下:

圖片

責任編輯:龐桂玉 來源: TIAP
相關推薦

2020-09-02 07:19:41

printf 格式化輸出Unix

2024-01-08 22:03:22

python代碼開發

2022-05-09 14:04:27

Python字符串格式化輸出

2010-07-16 16:00:08

Perl格式化輸出

2023-01-12 09:30:31

Linux命令行xml

2010-07-16 15:44:57

Perl格式化輸出

2010-07-16 15:23:34

Perl格式化輸出

2022-12-30 08:30:28

Linux命令行json

2009-08-03 16:24:05

C#格式化

2010-07-16 14:37:26

Perl格式化輸出

2010-07-21 14:25:24

Perl格式化輸出

2010-07-15 11:16:25

Perl格式化輸出

2010-07-15 11:29:25

Perl格式化輸出

2019-08-08 14:47:07

Linux命令行JSON

2022-06-26 08:39:19

Spring容器字段格式化

2009-08-03 14:25:59

C#日期格式化

2009-07-02 10:14:15

格式化日期SQL Server

2024-09-09 11:26:36

C#數字格式化

2020-11-03 10:21:33

MySQL

2010-07-29 11:12:30

Flex日期格式化
點贊
收藏

51CTO技術棧公眾號

国产欧美一区二区精品久久久| 九九国产精品视频| 尤物tv国产一区| 污网站在线播放| 国产欧美一区二区精品性色| 黑人巨大精品欧美一区二区小视频 | 欧美a级一区| 国产精品国产自产拍高清av| 国产精品99蜜臀久久不卡二区| 2222www色视频在线观看| 日韩视频在线一区二区三区 | 亚洲激情播播| 操日韩av在线电影| 亚洲精品.com| 国产一区二区三区四区福利| 精品众筹模特私拍视频| 亚洲精品美女视频| 国产免费不卡| 中文字幕久热精品在线视频 | 国产精品99久久免费| 尤物99国产成人精品视频| 色戒汤唯在线| 日韩精品中文字| 成人全视频在线观看在线播放高清| 国产一区二区三区高清在线观看| 97精品国产99久久久久久免费| 国产一区二区黄| www一区二区三区| 4p变态网欧美系列| 色一区二区三区四区| 国产精品xxx在线观看www| 久久一综合视频| 日本在线视频www色| 97成人超碰视| 免费看成人a| 欧美丝袜自拍制服另类| 污的网站在线观看| 日韩精品有码在线观看| 四虎影视国产精品| 欧美在线视频观看| 欧美日韩国产高清| 永久免费在线看片视频| 欧美激情综合在线| 中国在线观看免费国语版电影| 欧美精品1区2区3区| 色戒汤唯在线| 91高潮在线观看| 欧美激情一区| 路边理发店露脸熟妇泻火| 欧美高清在线精品一区| 青青草av免费在线观看| 亚洲国产精品成人一区二区| 亚洲成人五区| 国产精品中出一区二区三区| 国产精品99久久久久久宅男| av日韩在线免费| 欧美一级免费大片| 日韩区欧美区| 国产精品一区视频网站| eeuss国产一区二区三区| 中文字幕视频在线观看| 亚洲女人天堂色在线7777| 国产一区二区三区四区五区传媒 | 黄页在线观看视频| 精品欧美一区二区在线观看| 在线精品视频一区| 欧美日韩一区二区三区在线视频| 26uuu精品一区二区三区四区在线| 在线中文字幕视频| 综合久久五月天| 亚洲欧美亚洲| 99热成人精品热久久66| 欧美疯狂性受xxxxx喷水图片| 欧美日韩黄色| 欧美精品成人一区二区在线观看| 久久嫩草精品久久久精品一| 尤物网在线观看| 97免费在线视频| 久久丁香综合五月国产三级网站| 人与动性xxxxx免费视频| 亚洲美女在线视频| 亚洲香蕉网站| 国产a级网站| 亚洲人成人99网站| 极品中文字幕一区| av网站一区| 亚洲天堂免费观看| 亚洲人成久久| 毛片手机在线观看| 久久亚洲欧美日韩精品专区| 天堂影院一区二区| 天堂电影在线| 久久久久久国产三级电影| 麻豆精品一区二区三区| 国内av一区二区三区| 国内成人精品一区| 成人做爰69片免费看网站| 免费高清完整在线观看| 国产有码一区二区| 国产一区二区精品调教| 国产日本欧洲亚洲| http://嫩草影院| 国产丝袜视频一区| 亚洲a一区二区三区| 熟妇人妻va精品中文字幕| 欧美一区二区三区公司| 成人网18免费网站| 116极品美女午夜一级| 精品av久久707| 亚洲一级一区| 粗大的内捧猛烈进出在线视频| 在线日韩欧美视频| 久久aⅴ国产欧美74aaa| 日本网站在线免费观看视频| 国产精品激情av在线播放| 久久久99久久| 韩国成人在线| 中文字幕在线亚洲三区| 欧美裸体bbwbbwbbw| 欧美 日韩 国产 一区| 在线宅男视频| 国产精品久久久久77777| 国产精品少妇自拍| 国产精品一区二区美女视频免费看 | 亚洲成人三级在线| 国产欧美日本| yiren22综合网成人| 成人中心免费视频| 激情久久av一区av二区av三区| 激情五月色综合国产精品| 导航艳情国产电影| 国产精品高精视频免费| 一区二区成人在线| 欧美a级成人淫片免费看| 亚洲男人资源| 成人免费看片网址| 欧美一区二区三区在线观看视频| 99av国产精品欲麻豆| 男人天堂久久久| 国产乱真实合集| 国产日韩欧美一区二区三区综合| 国产精品天天看| 国产三级一区| 成年女人18级毛片毛片免费| 狠狠躁18三区二区一区| 自拍偷拍精品| 性一爱一乱一交一视频| 国产精品第一页在线| 亚洲午夜精品网| 99精品一区| 国产1区2区3区在线| 精品欧美一区二区在线观看视频| 欧美午夜一区二区| 日韩一区精品视频| 男人久久天堂| 国产精品一区二区免费在线观看| 久久精品视频免费播放| 欧美激情综合五月色丁香| 国产亚洲一卡2卡3卡4卡新区 | 91国偷自产一区二区开放时间| 亚洲天堂偷拍| 午夜激情电影在线播放| 日日碰狠狠丁香久燥| 国产精品美女www| 欧美一卡2卡三卡4卡5免费| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 57pao国产成人免费| 第一福利永久视频精品| 日韩精品久久理论片| 日韩电影精品| 欧美18一12sex性处hd| 日韩福利视频| 欧美日韩高清区| 欧美视频三区在线播放| 成人性生交大片免费看中文| 国产亚洲欧美日韩在线观看一区二区 | 全部孕妇毛片丰满孕妇孕交| 国产免费高清一区| 亚洲区免费影片| 亚洲精品国产a| 日韩高清在线不卡| 中文成人在线| 依依成人在线| 国产人妻互换一区二区| 97精品国产97久久久久久| 欧美日本视频在线| 99久久精品免费观看| 欧美freesex交免费视频| 午夜av成人| 一区二区三区区四区播放视频在线观看 | 日韩欧美aⅴ综合网站发布| 国内成人免费视频| 奇米影视777在线欧美电影观看| 国产资源在线观看| 99国产精品白浆在线观看免费| 97免费视频在线| 亚洲第五色综合网| 五月天丁香久久| 久久精品男人天堂av| 麻豆久久一区二区|