หากคุณใช้เปลือก Bash มาระยะหนึ่งแล้ว คุณอาจรู้วิธีพิมพ์สตริงในเทอร์มินัล Linux โดยใช้คำสั่ง echo อย่างไรก็ตาม คำสั่ง printf ทำให้การพิมพ์ข้อความด้วยการจัดรูปแบบเฉพาะง่ายขึ้นมาก
วันนี้เราจะมาเรียนรู้วิธีใช้ฟังก์ชัน printf เพื่อพัฒนาทักษะการเขียนสคริปต์ทุบตีของเรา
ฟังก์ชั่น Bash printf คืออะไร?
ตามชื่อที่แนะนำ printf เป็นฟังก์ชันที่พิมพ์สตริงข้อความที่จัดรูปแบบ ซึ่งหมายความว่าคุณสามารถเขียนโครงสร้างสตริง (รูปแบบ) และเติมด้วยค่า (อาร์กิวเมนต์) ในภายหลัง
หากคุณคุ้นเคยกับภาษาการเขียนโปรแกรม C/C++ คุณอาจทราบแล้วว่า printf ทำงานอย่างไร Printf ในเชลล์ Bash นั้นคล้ายกันมาก แต่มีความแตกต่างเล็กน้อยเล็กน้อย
เรียนรู้เพิ่มเติม: ไซต์ที่ดีที่สุดในการเริ่มต้นเขียนโปรแกรม C++
วิธีใช้ printf ใน Bash Shell
ไวยากรณ์พื้นฐานสำหรับ printf คือ:
printf format [argument]
Printf จะพิมพ์ รูปแบบ สตริงขณะใช้งาน การรั่วไหล ( ) และ คำสั่ง ( % ) ผ่านการใช้งานตามที่กำหนด ข้อโต้แย้ง . สังเกตผลลัพธ์ของคำสั่งต่อไปนี้:
$ printf 'Hello, %s' world
Hello, world
Printf เอา โลก โต้แย้งและแทนที่ %NS อักขระในสตริงที่ระบุด้วย
คุณอาจสังเกตเห็นว่าหลังจากผลลัพธ์ Bash จะไม่สร้างบรรทัดใหม่ให้คุณ ไม่เหมือนกับคำสั่ง echo printf จะไม่ถือว่าคุณต้องการขึ้นบรรทัดใหม่หลังจากพิมพ์เอาต์พุตแล้ว ดังนั้น คุณจะต้องใช้อักขระขึ้นบรรทัดใหม่ NS ในแต่ละกรณี
เมื่อต้องการพิมพ์สตริงแล้วย้ายไปขึ้นบรรทัดใหม่ ให้พิมพ์ printf 'สวัสดีชาวโลก ' .
Hello, world
สิ่งสำคัญคือต้องจำไว้ว่า printf จะพยายามนำรูปแบบกลับมาใช้ใหม่สำหรับอาร์กิวเมนต์ทั้งหมดของคุณ คุณสามารถใช้สิ่งนี้เพื่อประโยชน์ของคุณ แต่ถ้าคุณไม่ระวัง คุณจะได้ผลลัพธ์ดังนี้:
$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor
คุณควรทราบด้วยว่าหากไม่มีอาร์กิวเมนต์ printf จะตีความคำสั่งใดๆ เป็น 0 (สำหรับตัวเลข) และ โมฆะ (สำหรับสตริง)
$ printf 'Hello, %s.'
Hello, .
ตอนนี้คุณรู้แล้วว่าการเขียนสคริปต์ Bash กับ printf ใน Linux ทำงานอย่างไร คุณก็พร้อมที่จะเริ่มใช้งานในคำสั่งของคุณแล้ว
Linux Bash printf ตัวอย่าง
Printf มีตัวระบุรูปแบบมากมายที่คุณสามารถใช้ได้ในสคริปต์ของคุณ แต่วันนี้เราจะมาพูดถึงฟังก์ชันทั่วไปบางส่วนเท่านั้น
1. จัดรูปแบบเอาต์พุตด้วยสตริง
ในการจัดรูปแบบเอาต์พุตด้วยสตริงข้อความ ให้ใช้ %NS คำสั่ง
$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.
2. จัดรูปแบบสตริงเอาต์พุตด้วยทศนิยม
ในการจัดรูปแบบสตริงด้วยจำนวนเต็ม คุณสามารถใช้เครื่องหมาย %NS คำสั่งสำหรับทศนิยมที่ลงนาม
$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.
โปรดทราบว่าหากคุณต้องการใช้ทศนิยมที่ไม่ได้ลงนามในผลลัพธ์ คุณจะต้องใช้ % ยู คำสั่งแทน
สร้างตัวกรอง snapchat ของคุณเองฟรี
ที่เกี่ยวข้อง: 'Bash' หมายถึงอะไรใน Linux?
3. ฟังก์ชันเอาต์พุตทางคณิตศาสตร์โดยใช้ printf
การจัดรูปแบบฟังก์ชันทางคณิตศาสตร์ด้วยคำสั่ง printf เป็นเรื่องง่าย เพียงวางนิพจน์ของคุณไว้ในวงเล็บคู่เหมือนปกติใน Bash แล้วระบุนิพจน์ในรายการอาร์กิวเมนต์
$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2
4. จัดรูปแบบเลขฐานสิบหก
หากคุณต้องการจัดรูปแบบเลขฐานสิบหก ให้ใช้ % NS สำหรับตัวพิมพ์เล็กและ % NS สำหรับตัวพิมพ์ใหญ่
$ printf %X 1000
3E8C
5. พิมพ์วันที่และเวลา
หากต้องการพิมพ์วันที่และเวลาปัจจุบัน คุณสามารถรวม printf กับ วันที่ คำสั่งและส่งคำสั่งต่อไปนี้
$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%s)
03-26-2021 15:27:57
คุณสามารถดูตัวระบุรูปแบบสำหรับเดือน วัน ปี ชั่วโมง นาที และวินาทีในผลลัพธ์ดังกล่าว
6. จัดรูปแบบสตริงด้วยอักขระ Unicode
ในการพิมพ์อักขระ Unicode ด้วย printf ให้ใช้ ยู หลบหนีสำหรับ Unicode 16 บิตและ ยู สำหรับ Unicode 32 บิต
ตัวอย่างเช่น คุณสามารถพิมพ์ ลิขสิทธิ์ สัญลักษณ์ด้วยคำสั่งต่อไปนี้:
$ printf 'u00A9'
©
7. เพิ่มระยะห่างให้กับผลลัพธ์
คุณสามารถจัดรูปแบบสตริงของคุณด้วยการเว้นวรรคโดยกำหนดจำนวนอักขระที่พิมพ์น้อยที่สุดก่อนตัวระบุคำสั่ง อักขระที่ไม่ได้ใช้จะถูกเติมด้วยช่องว่าง
เช่น พิมพ์ printf '%s:%5d ' 'ค่า 1' 25 'ค่า 2' 120 จะส่งออก:
Value 1: 25
Value 2: 120
NS %5d ตัวระบุรูปแบบในเอาต์พุตแสดงว่าสตริงที่จัดรูปแบบจะมีอักขระอย่างน้อยห้าตัว เนื่องจาก 25 มีตัวเลขเพียงสองหลัก ช่องว่างจะถูกเพิ่มในอักขระที่เหลือ
หากคุณส่งค่าลบเป็นความกว้าง คำสั่งจะถูกปรับให้ชิดซ้ายแทนชิดขวา
$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120
หากคุณต้องการสร้างตัวแปร width คุณสามารถส่งเครื่องหมายดอกจันแทนตัวเลข และ printf จะใช้ตัวเลขถัดไปที่พบในรายการอาร์กิวเมนต์
$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120
ที่เกี่ยวข้อง: ทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับ Bash For Loops ใน Linux
เรียนรู้คำสั่ง Linux printf
ด้วยคำสั่ง printf ในแถบยูทิลิตี้การเขียนสคริปต์ Bash ของคุณ คุณก็พร้อมที่จะเริ่มพิมพ์ข้อความที่ซับซ้อนและหลากหลายในเทอร์มินัลของคุณ ขณะที่คุณกำลังพัฒนาสคริปต์ Bash สิ่งสำคัญคือต้องแน่ใจว่าคุณกำลังทำงานในสภาพแวดล้อมที่มีประสิทธิผลมากที่สุดเท่าที่จะเป็นไปได้ สิ่งนี้จะไม่เพียงแต่ปรับปรุงทักษะบรรทัดคำสั่งของคุณ แต่ยังช่วยปรับปรุงเวิร์กโฟลว์ของคุณโดยทั่วไป
แบ่งปัน แบ่งปัน ทวีต อีเมล 10 สุดยอด Linux Distros สำหรับนักพัฒนาพร้อมที่จะเริ่มพัฒนาระบบปฏิบัติการโอเพ่นซอร์สแล้วหรือยัง? นี่คือ Linux distros ที่ดีที่สุดสำหรับการเขียนโปรแกรม
วิธีการจัดการสายเคเบิลบนโต๊ะอ่านต่อไป หัวข้อที่เกี่ยวข้อง
- ลินุกซ์
- Linux Bash Shell
- คำสั่งลินุกซ์
Jordan เป็นพนักงานเขียนบทที่ MUO ผู้หลงใหลในการทำให้ Linux สามารถเข้าถึงได้และปราศจากความเครียดสำหรับทุกคน เขายังเขียนคำแนะนำเกี่ยวกับความเป็นส่วนตัวและประสิทธิภาพการทำงาน
เพิ่มเติมจาก Jordan Gloorสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก