เชลล์คำสั่ง printf
บทสุดท้ายเราได้เรียนรู้คำสั่งเชลล์สะท้อนในบทนี้เราเรียนรู้เอาท์พุทเชลล์คำสั่ง printf อื่น
คำสั่ง printf เลียนแบบ C ห้องสมุด (ห้องสมุด) ใน printf () ที่ขั้นตอน
ความคมชัดมาตรฐานเพื่อให้การใช้งานสคริปต์ printf ดีกว่าการใช้พกพาก้อง
printf ใช้ข้อความอ้างอิงหรือพารามิเตอร์คั่นด้วยช่องว่างสามารถนำมาใช้นอกสตริงรูปแบบ printf คุณยังสามารถพัฒนาความกว้างของสตริงและเพื่อให้การจัดตำแหน่งด้านซ้ายและขวา เริ่มต้น printf ไม่ได้โดยอัตโนมัติเพิ่มเส้นแบ่งเหมือนก้องเราสามารถเพิ่ม \ n ด้วยตนเอง
printf ไวยากรณ์คำสั่ง:
printf format-string [arguments...]
พารามิเตอร์คำอธิบาย:
- รูปแบบสตริง: สตริงควบคุมรูปแบบ
- ข้อโต้แย้ง: รายชื่อของพารามิเตอร์
ตัวอย่างมีดังนี้
$ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $
ต่อไปผมจะใช้สคริปต์เพื่อสะท้อนให้เห็นถึง printf มีประสิทธิภาพ:
#!/bin/bash # author:本教程 # url:www.w3big.com printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
รันสคริปต์เอาท์พุทจะเป็นดังนี้:
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
% S% C% d รูปแบบ f% เป็นตัวยึด
% -10s อ้างถึงความกว้างของ 10 ตัวอักษร A (- ซ้ายชิดขวาชิดกล่าวว่าไม่มี) ตัวอักษรใดจะแสดงใน 10 ตัวอักษรตัวอักษรกว้างหากพื้นที่ไม่เพียงพอที่จะเต็มไปโดยอัตโนมัติก็จะมีมากขึ้นกว่าเนื้อหา แสดงทั้งหมดของพวกเขา
-4.2f% หมายถึงรูปแบบทศนิยมซึ่งหมายความ 0.2 ตำแหน่งทศนิยม 2
ตัวอย่างเพิ่มเติมได้ที่:
#!/bin/bash # author:本教程 # url:www.w3big.com # format-string为双引号 printf "%d %s\n" 1 "abc" # 单引号与双引号效果一样 printf '%d %s\n' 1 "abc" # 没有引号也可以输出 printf %s abcdef # 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用 printf %s abc def printf "%s\n" abc def printf "%s %s %s\n" a b c d e f g h i j # 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替 printf "%s and %d \n"
รันสคริปต์เอาท์พุทจะเป็นดังนี้:
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
ลำดับหนี printf ของ
ลำดับ | คำอธิบาย |
---|---|
\ a | เตือนตัวอักษรปกติอักขระ ASCII BEL |
\ B | ล่าถอย |
\ C | ยับยั้ง (ไม่แสดง) เอาท์พุทในตัวละครขึ้นบรรทัดใหม่ใด ๆ ต่อท้าย (ใช้ได้เฉพาะในสตริงพารามิเตอร์ภายใต้ B บ่งชี้% รูปแบบการควบคุม) และในตัวอักษรใด ๆ เหลืออยู่ในพารามิเตอร์และพารามิเตอร์ใด ๆ และใด ๆ ตามมาในการเข้าพัก ตัวอักษรสตริงรูปแบบจะถูกละเลย |
\ F | FF (formfeed) |
\ n | ห่อ |
\ r | Enter (กลับรถ) |
\ t | แท็บแนวนอน |
\ V | แท็บแนวตั้ง |
\\ | ตัวละครตัวอักษรทับขวา |
\ Ddd | แทนตัวอักษรค่าฐานแปด 1-3 หลัก คูปองนี้สามารถใช้ได้เฉพาะในรูปแบบของสตริง |
\ 0ddd | แสดงผล 1-3 ค่าฐานแปดของตัวละคร |
ตัวอย่าง
$ printf "a string, no processing:<%s>\n" "A\nB" a string, no processing:<A\nB> $ printf "a string, no processing:<%b>\n" "A\nB" a string, no processing:<A B> $ printf "www.w3big.com \a" www.w3big.com $ #不换行