วิธีการแสดง GUI Message Box
จาก Bash Script บน Linux ได้ง่าย ๆ
เมื่อคุณเขียน Bash scripts บน Linux โดยเฉพาะใน Ubuntu คุณอาจพบว่าคุณต้องการนำเสนอข้อมูลหรือขอให้ผู้ใช้ป้อนข้อมูลโดยไม่ต้องพึ่งพาอินเตอร์เฟซของ terminal ความต้องการสำหรับกราฟิกไดอะล็อกนั้นอาจเกิดขึ้นในหลายสถานการณ์เช่นการแสดงการยืนยันข้อความการแจ้งเตือนหรือการแจ้งเตือนที่ง่าย
บทความนี้จะพาคุณไปเรียนรู้การใช้ Zenity เครื่องมือที่มีอยู่ใน Ubuntu เพื่อสร้าง GUI dialog boxes จาก Bash scripts ของคุณได้อย่างง่ายดาย มาลงรายละเอียดในขั้นตอนการดำเนินการกันเถอะ
ทำไมต้องใช้ GUI Message Box?
การใช้ GUI message box ในสคริปต์ของคุณช่วยให้:
- เพิ่มประสบการณ์ผู้ใช้: อินเตอร์เฟซกราฟิกจะใช้งานได้ง่ายกว่าสำหรับผู้ใช้ ทำให้การใช้งานสคริปต์สามารถทำได้ง่ายขึ้น
- หลีกเลี่ยงการพึ่งพา Terminal: ผู้ใช้สามารถโต้ตอบกับสคริปต์ได้โดยตรงโดยไม่ต้องใช้ terminal
- ปรับปรุงการตอบสนอง: การให้ฟีดแบ็คหรือการช่วยในการนำเสนอในรูปแบบไดอะล็อกจะทำให้ผู้ใช้อยู่ในสภาพที่รับรู้ข้อมูล
Zenity คืออะไร?
Zenity คือเครื่องมือทางบรรทัดคำสั่งที่ช่วยให้คุณสร้าง GTK dialog boxes ในสคริปต์ ซึ่งหมายความว่าคุณสามารถรวมสไตล์ message box ที่แตกต่างกันเช่นการแจ้งเตือนข้อมูล คำถาม หรือการเลือกไฟล์จากสคริปต์ bash ของคุณ
Zenity มีให้ในฐานะแพ็กเกจ Ubuntu ดังนั้นคุณไม่จำเป็นต้องติดตั้งซอฟต์แวร์เพิ่มเติม (เว้นแต่ว่าจะต้องการฟีเจอร์พิเศษบางอย่าง)
การติดตั้ง
ในกรณีส่วนใหญ่ Zenity จะถูกติดตั้งมาให้พร้อมใน Ubuntu หากคุณต้องการตรวจสอบว่ามันถูกติดตั้งหรือไม่ คุณสามารถใช้คำสั่งต่อไปนี้ได้:
zenity --version
หากยังไม่ได้ติดตั้ง คุณสามารถเพิ่มมันได้ง่าย ๆ โดยใช้คำสั่ง:
sudo apt-get install zenity
วิธีการใช้ Zenity ใน Bash Scripts ของคุณ
นี่คือการแยกการสร้าง GUI dialog boxes ที่แตกต่างกันโดยใช้ Zenity
แสดงข้อความข้อมูล
เพื่อแสดงไดอะล็อกข้อมูลง่าย ๆ คุณสามารถใช้คำสั่งต่อไปนี้:
zenity --info --text="ข้อความของคุณที่นี่"
ถามคำถาม
เพื่อให้ผู้ใช้ตอบคำถาม คุณสามารถใช้:
zenity --question --text="คุณต้องการดำเนินการต่อไหม?"
ซึ่งจะส่งกลับโค้ดออกที่สำเร็จหรือล้มเหลวขึ้นอยู่กับการเลือกของผู้ใช้
รับข้อมูลจากผู้ใช้
หากคุณต้องการรับข้อมูลจากผู้ใช้ ให้ใช้:
USER_INPUT=$(zenity --entry --text="กรุณาป้อนชื่อของคุณ:")
สิ่งนี้จะกระตุ้นให้ผู้ใช้ป้อนชื่อและจัดเก็บในตัวแปร USER_INPUT
ตัวอย่างสคริปต์
นี่คือตัวอย่าง Bash script ที่รวม Zenity dialogs หลายประเภท:
#!/bin/bash
zenity --info --text="ยินดีต้อนรับเข้าสู่สคริปต์!"
if zenity --question --text="คุณต้องการดำเนินการต่อไหม?"; then
NAME=$(zenity --entry --text="ชื่อของคุณคืออะไร?")
zenity --info --text="สวัสดี, $NAME!"
else
zenity --warning --text="การดำเนินการถูกยกเลิก."
fi
การรันสคริปต์
- บันทึกสคริปต์เป็น
your_script.sh
. - ทำให้มันสามารถทำงานได้:
chmod +x your_script.sh
- รันมัน:
./your_script.sh
ตอนนี้ เมื่อคุณรันสคริปต์ของคุณ คุณจะเห็นข้อความต้อนรับตามด้วยคำถาม และอาจจะเป็นการทักทายหรือข้อความยกเลิกขึ้นอยู่กับข้อมูลที่ป้อนเข้า
สรุป
การนำ GUI message boxes มาใช้ใน Bash scripts ของคุณสามารถปรับปรุงการโต้ตอบและประสบการณ์ของผู้ใช้ได้อย่างมาก ด้วย Zenity คุณสามารถนำเสนอหลากหลายประเภทของไดอะล็อกได้อย่างง่ายดาย โดยไม่ต้องทำให้ผู้ใช้รู้สึกลำบากจากการแสดงผลใน terminal
ด้วยการทำตามขั้นตอนที่กล่าวมาข้างต้น คุณสามารถสร้างสคริปต์ที่น่าสนใจและใช้งานง่ายที่สามารถทำงานได้ดีกับ Ubuntu หรือการแจกจ่าย Linux ใดๆ ที่รองรับ GTK ขอให้สนุกกับการเขียนสคริปต์!