คุณสามารถสร้างสคริปต์แบบโต้ตอบได้โดยการรับข้อมูลจากผู้ใช้ในระหว่างการดำเนินการ นอกจากนี้ยังช่วยให้คุณจัดการผลลัพธ์ตามความต้องการ มีวิธีการง่ายๆ ในการรับข้อมูลจากผู้ใช้ นั่นเป็นเหตุผลที่ดีที่สุดที่จะใช้วิธีขั้นสูงในฐานะคนกลางหรือผู้เชี่ยวชาญ อย่างไรก็ตาม ผู้ใช้แบชจำนวนมากจำเป็นต้องเรียนรู้เทคนิคขั้นสูงเพื่อรับข้อมูลจากผู้ใช้ในสคริปต์ทุบตี ดังนั้นในบทช่วยสอนนี้ เราจะอธิบายสั้นๆ ทั้งหมด
วิธีรับข้อมูลจากผู้ใช้ใน Bash Script [เทคนิคขั้นสูง]
ด้วยคำสั่ง read คุณสามารถรับอินพุตได้ แต่คุณรู้หรือไม่ว่าคุณสามารถรับหลายอินพุตได้? ลองมาเป็นตัวอย่างเพื่อรับข้อมูลเชิงลึก สมมติว่าเราต้องการสร้างสคริปต์เพื่อทำการคำนวณเลขคณิตโดยใช้ตัวเลขหลายตัว (A, B, C, D, E):
#!/bin/bash
เสียงสะท้อน 'กรุณากรอกเลขสามตัว'
อ่าน เอ บี ซี ดี อี
ผลรวม =$ ( ( A+B+C+D+E ) )
เสียงสะท้อน 'นอกจากนี้คือ ผลรวม $ '
คูณ =$ ( ( ก * ข * ค * ง * และ ) )
เสียงสะท้อน 'การคูณคือ $คูณ '
ตอนนี้ เราสามารถเรียกใช้สคริปต์และป้อนตัวเลขเพื่อคำนวณการบวกและการคูณ:
หากคุณไม่ต้องการสร้างคำสั่ง echo แยกต่างหาก คุณสามารถเพิ่มคำสั่งนั้นในคำสั่ง read โดยใช้ตัวเลือก -p:
#!/bin/bashอ่าน -หน้า 'กรุณากรอกชื่อและอายุของคุณ:' อายุอานาม
ถ้า [ อายุ $ -ล 17 ]
แล้ว
เสียงสะท้อน 'ขออภัย!! ท่านไม่มีสิทธิ์เข้าร่วมหลักสูตร'
อื่น
เสียงสะท้อน 'เยี่ยม!!คุณมีสิทธิ์ได้เรียน'
เป็น
สคริปต์ด้านบนกำหนดให้ผู้ใช้ต้องมีอายุอย่างน้อย 17 ปีจึงจะมีสิทธิ์เข้าร่วมหลักสูตรเฉพาะ:
รับอินพุตโดยใช้ Stdin (อินพุตมาตรฐาน)
หากคุณต้องการก้าวไปอีกขั้นในเทคนิคขั้นสูง คุณสามารถใช้แนวคิด stdin คุณสามารถใช้ stdin ในสคริปต์เพื่อรับวิธีแก้ปัญหาง่ายๆ ลองมาตัวอย่างที่เราต้องการกรองรายชื่อผู้มีสิทธิ์ที่ส่งค่าธรรมเนียมแล้ว เรามีรายการที่มีรายละเอียดต่างๆ เช่น ชื่อผู้สมัคร อายุ วันที่ส่งแบบฟอร์ม และสถานะการส่งค่าธรรมเนียม ดังนั้นเราจึงสามารถใช้สคริปต์ด้านล่างเพื่อดูรายละเอียดที่ต้องการ:
#!/bin/bashเสียงสะท้อน 'รายละเอียดเกี่ยวกับการยื่นค่าธรรมเนียม:'
แมว / ผู้พัฒนา / สเตดิน | ตัด -d ' ' -ฉ 1 , 4 | เรียงลำดับ
สคริปต์นี้ให้ผลลัพธ์ต่อไปนี้:
ห่อ
นี่คือทั้งหมดที่เกี่ยวกับเทคนิคขั้นสูงที่คุณสามารถลองรับข้อมูลจากผู้ใช้ในสคริปต์ทุบตี ในบทช่วยสอนนี้ เราได้อธิบายตัวเลือกต่างๆ ในคำสั่ง read และ stdin เพื่อป้อนข้อมูลอย่างรวดเร็ว หากคุณยังใหม่กับ bash และต้องการทราบวิธีการป้อนข้อมูล โปรดดูที่เว็บไซต์ของเราเพื่อทราบข้อมูลเพิ่มเติม