วิธีการแสดง 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

การรันสคริปต์

  1. บันทึกสคริปต์เป็น your_script.sh.
  2. ทำให้มันสามารถทำงานได้:
    chmod +x your_script.sh
    
  3. รันมัน:
    ./your_script.sh
    

ตอนนี้ เมื่อคุณรันสคริปต์ของคุณ คุณจะเห็นข้อความต้อนรับตามด้วยคำถาม และอาจจะเป็นการทักทายหรือข้อความยกเลิกขึ้นอยู่กับข้อมูลที่ป้อนเข้า

สรุป

การนำ GUI message boxes มาใช้ใน Bash scripts ของคุณสามารถปรับปรุงการโต้ตอบและประสบการณ์ของผู้ใช้ได้อย่างมาก ด้วย Zenity คุณสามารถนำเสนอหลากหลายประเภทของไดอะล็อกได้อย่างง่ายดาย โดยไม่ต้องทำให้ผู้ใช้รู้สึกลำบากจากการแสดงผลใน terminal

ด้วยการทำตามขั้นตอนที่กล่าวมาข้างต้น คุณสามารถสร้างสคริปต์ที่น่าสนใจและใช้งานง่ายที่สามารถทำงานได้ดีกับ Ubuntu หรือการแจกจ่าย Linux ใดๆ ที่รองรับ GTK ขอให้สนุกกับการเขียนสคริปต์!