วิธีสร้างสคริปต์เชลล์แบบกราฟิกอย่างง่ายด้วย Zenity บน Linux
Zenity เพิ่มส่วนต่อประสานกราฟิกไปยังเชลล์สคริปต์ด้วยคำสั่งเดียว เชลล์สคริปเป็นวิธีที่ยอดเยี่ยมในการทำภารกิจซ้ำ ๆ โดยอัตโนมัติ แต่โดยปกติจะ จำกัด อยู่ที่เทอร์มินัล - Zenity นำพวกเขาออกจากเทอร์มินัลและบนเดสก์ท็อปของคุณ.
เราได้ให้คำแนะนำเกี่ยวกับการเขียนสคริปต์เชลล์ในอดีต คุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์เพื่อเริ่มต้นกับเชลล์สคริปต์ - พวกเขาต้องการความรู้เกี่ยวกับคำสั่งเทอร์มินัล Linux เล็กน้อย.
รับ Zenity
Zenity มาพร้อมกับ Ubuntu ตามค่าเริ่มต้น หากคุณใช้อนุพันธ์ของ Ubuntu เช่น Kubuntu คุณอาจต้องติดตั้งด้วยตนเองด้วยคำสั่งต่อไปนี้:
sudo apt-get zenity install
Zenity เป็นส่วนหนึ่งของ GNOME ดังนั้นจึงควรรวมอยู่ในการแจกแจง Linux ที่ใช้เดสก์ท็อป GNOME อยู่แล้ว ตรวจสอบผู้จัดการแพคเกจของคุณสำหรับ zenity แพคเกจถ้าคุณไม่ได้มัน.
ใช้ Zenity
คุณสามารถเล่นกับ Zenity จากเทอร์มินัล สมมติว่าคุณต้องการสร้างหน้าต่างข้อผิดพลาดเมื่อเกิดปัญหากับเชลล์สคริปต์ของคุณ นี่คือตัวอย่างคำสั่งที่คุณสามารถใช้:
zenity -error -title =” เกิดข้อผิดพลาด” -text =” เกิดปัญหาขณะเรียกใช้เชลล์สคริปต์”
เรียกใช้คำสั่งแล้วคุณจะเห็นหน้าต่างพร้อมข้อความ.
ใส่คำสั่งเดียวนี้ลงในเชลล์สคริปต์ของคุณในตำแหน่งที่ถูกต้องและคุณจะได้รับข้อความแสดงข้อผิดพลาดกราฟิก คุณสามารถใช้ตัวแปรเพื่อรวมข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด.
สมมติว่าคุณต้องการถามคำถามใช่หรือไม่ใช่ คุณสามารถใช้คำสั่งแบบนี้:
zenity -question -title =” Query” -text =” คุณต้องการเรียกใช้สคริปต์หรือไม่”
คุณสามารถตรวจจับการตอบสนองของใช่หรือไม่ใช่ในเชลล์สคริปต์ของคุณและดำเนินการคำสั่งต่าง ๆ ตามปุ่มที่ผู้ใช้คลิก.
นอกจากนี้ยังมีกล่องโต้ตอบการป้อนข้อความ:
zenity -entry -title =” เว็บไซต์โปรด” - ข้อความ =” เว็บไซต์โปรดของคุณคืออะไร”
ตรวจจับอินพุตของผู้ใช้ในเชลล์สคริปต์และคุณสามารถเก็บเป็นตัวแปรได้.
นอกจากนี้ยังมีตัวเลือกไฟล์ปฏิทินและกล่องโต้ตอบประเภทอื่น ๆ สำหรับรายการประเภทโต้ตอบทั้งหมดและตัวเลือกต่าง ๆ ให้ดูที่หน้าคู่มือของ Zenity.
สคริปต์ตัวอย่าง
ลองใช้ Zenity เพื่อสร้างเชลล์สคริปต์แบบกราฟิกอย่างง่าย ด้วยสามคำสั่งเราสามารถสร้างโปรแกรมจับเวลากราฟิก:
#! / bin / ทุบตี
# สคริปต์นี้ขอให้ผู้ใช้ในเวลารอจำนวนที่ระบุ
# ของเวลาและแสดงกล่องโต้ตอบการแจ้งเตือน.TIME = $ (zenity -entry -title =” ตัวจับเวลา” -text =” ป้อนระยะเวลาสำหรับตัวจับเวลา \ n \ n ใช้ 5s เป็นเวลา 5 วินาที 10 นาที 10 นาทีหรือ 2 ชั่วโมงเป็นเวลา 2 ชั่วโมง”)
นอน $ TIME
zenity -info -title =” ตัวจับเวลาเสร็จสมบูรณ์” -text =” ตัวจับเวลาสิ้นสุดลง \ n \ n มันได้รับ $ TIME”
เราใช้เทคนิคพิเศษบางอย่างที่นี่ เราได้รับค่าของตัวแปร TIME จากคำสั่ง zenity แรกและป้อนไปยังคำสั่ง sleep เรายังใช้ / n เพื่อสร้างบรรทัดใหม่ของข้อความในกล่องโต้ตอบ zenity.
หลังจากบันทึกเชลล์สคริปต์และรัน chmod + x คำสั่งที่จะให้มันอนุญาตให้ปฏิบัติได้เราสามารถเปิดมันได้.
ป้อนระยะเวลาและสคริปต์จะใช้มาตรฐาน นอน คำสั่งเพื่อนับถอยหลังในพื้นหลัง เมื่อตัวจับเวลาคำสั่ง sleep เสร็จสิ้นสคริปต์จะแสดงข้อความข้อมูล zenity.
คุณสามารถสร้างทางลัดบนเดสก์ท็อปหรือพาเนลสำหรับสคริปต์นี้และรันโดยไม่ต้องแตะต้องเทอร์มินัล.
นี่เป็นเพียงการเกาที่ผิวของสิ่งที่คุณสามารถทำได้ด้วยความเป็นเซน คุณสามารถใช้มันเพื่อสร้างโปรแกรมที่ซับซ้อนมากขึ้น หากคุณกำลังมองหาข้อมูลเพิ่มเติมเกี่ยวกับเชลล์สคริปต์ให้ตรวจสอบคู่มือของเราเพื่อใช้ลูปในเชลล์สคริปต์.