GNU/Linux >> Belajar Linux >  >> Linux

Cara menampilkan dialog GUI dalam skrip bash menggunakan Zenity

Kita semua tahu bahwa skrip bash Linux adalah kekuatan nyata dari Linux. Seringkali kita ingin menampilkan antarmuka pengguna grafis (GUI) dalam skrip kita untuk mempermudah interaksi dengan pengguna. GUI membuat skrip apa pun lebih ramah pengguna dan indah.

Untuk GTK dalam skrip shell, ada banyak opsi dan alat yang tersedia di Linux.

Dalam artikel ini, kami akan menunjukkan cara menggunakan Zenity untuk menampilkan dialog GUI di skrip Bash.

Zenity adalah aplikasi open-source untuk menampilkan GUI sederhana dalam skrip shell. Itu membuat skrip lebih ramah pengguna dengan menampilkan dialog GTK+. Zenity adalah alat baris perintah yang berguna untuk skrip shell modern. Zenity mudah digunakan dan merupakan aplikasi lintas platform.

Prasyarat

Pengguna sudo dengan hak akses root.

Instal Zenity

Zenity adalah bagian dari desktop GNOME dan secara default, itu diinstal pada sebagian besar distribusi Linux. Anda dapat memverifikasi instalasi Zenity di sistem Anda dengan menjalankan perintah berikut ke terminal.

zenity --version


Jika Zenity tidak terinstal di sistem Anda, Anda dapat menginstalnya menggunakan Apt , dnf atau pacman perintah.

Untuk sistem berbasis Ubuntu/Debian:

sudo apt-get install zenity

Untuk sistem berbasis RedHat :

dnf install zenity

Untuk sistem berbasis Arch:

pacman -S zenity

Opsi Zenity General

Ada beberapa opsi Umum yang dapat digunakan dengan Zenity secara mandiri. Opsi umum adalah --title, --window-icon, --width, --height, --timeout

Anda dapat menggunakan ---title option  untuk menentukan judul untuk jendela dialog.

Anda dapat menggunakan opsi --window-icon untuk menentukan ikon yang akan digunakan sebagai ikon untuk Kotak Dialog Zenity.

Tidak hanya itu, Anda dapat mengatur lebar dan tinggi untuk Kotak Dialog Zenity dengan mengatur opsi --width dan --height di perintah Zenity.

Dengan menggunakan opsi --timeout Anda dapat mengatur batas waktu dialog, setelah itu kotak dialog akan tertutup secara otomatis.

Kotak Pesan Zenity

Anda dapat membuat beberapa dialog pesan GUI dasar dan bagus menggunakan perintah Zenity sederhana dari terminal.

Empat jenis dialog Pesan tersedia di Zenity.
 

  • Informasi
  • Kesalahan
  • Pertanyaan
  • Peringatan

1. Kotak Dialog Informasi

Anda dapat membuat Kotak Dialog informasi dengan menjalankan perintah berikut di terminal:

zenity --info --text="Software Update Available." --width=500


2. Kotak Dialog kesalahan

Jalankan perintah berikut untuk menampilkan kotak dialog kesalahan

zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200


3. Kotak Dialog Pertanyaan

Anda dapat dengan mudah menanyakan Yes of no question dengan menjalankan perintah berikut:

zenity --question --text="Do you want to reboot pc?" --width=200


Anda dapat menggunakan Dialog Pertanyaan Zenity dalam skrip shell seperti ini:

#/bin/bash
touch demo.txt
if zenity --question --title="Confirm deletion" --text="Are you sure you want to demo.txt file?" --no-wrap
    then
    rm demo.txt
    zenity --info --title="Success" --text="demo.text was removed" --no-wrap
fi

4. Kotak Dialog Peringatan

zenity --warning --title="Update Available" --text="OS Update required" --width=200

Pemberitahuan

Anda dapat menampilkan Notifikasi menggunakan Zenity.

zenity --notification --text "Good Morning"

Kotak Masukan Zenity

Menggunakan Zenity Anda dapat membuat kotak dialog sederhana yang mengambil input dari pengguna dan menampilkannya sebagai output standar.

Berikut adalah beberapa kotak masukan:

Kalender

Kotak Dialog Kalender menampilkan kalender dan mengembalikan tanggal yang dipilih pengguna sebagai keluaran standar.

zenity --calendar
Output:
17/04/21

Dialog Entri Teks

Anda dapat menggunakan opsi --entry untuk membuat dialog entri teks. Ini sangat berguna ketika Anda ingin meminta pengguna untuk memasukkan beberapa teks.

zenity --entry --title "User Info" --text "Please enter your name"

Daftar Dialog

Anda dapat menggunakan opsi --list untuk membuat dialog multi-kolom, Di sini Anda perlu memasukkan Data untuk dialog daftar kolom demi kolom, baris demi baris. Anda dapat menggunakan checkbox atau rediobox dengan kotak dialog list seperti di bawah ini:

zenity --list  --title "Choose Processor" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

Anda juga dapat memberikan kotak centang dengan opsi --list untuk beberapa pilihan.

zenity --list --title "Packages" --list  --text "select packages you want to install" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Output
Google Chrome|VLC|Firefox

Dialog Pemilihan Warna

Anda dapat menggunakan opsi --color-selection untuk mengambil nilai pemilihan warna dari pengguna.

zenity --color-selection --show-palette

Dialog Pemilihan File

Anda dapat menggunakan opsi --file-selection untuk menangkap file atau direktori yang dipilih sebagai output standar. Anda juga dapat menyimpan file menggunakan opsi --file-selection.

zenity --file-selection --multiple --filename "/"

Dialog Kemajuan

Anda dapat membuat bilah kemajuan yang bagus menggunakan opsi --progress. Ini berguna berkali-kali, di mana Anda ingin menampilkan bilah kemajuan penyelesaian aplikasi atau skrip Anda kepada pengguna.

Perintah di bawah ini menunjukkan bilah kemajuan unduhan.

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# Downloading at \2\/s, ETA \3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate

Untuk opsi kemajuan lebih lanjut, jalankan perintah berikut ke terminal

zenity --help-progress

Untuk opsi Zenity lainnya, Anda dapat menggunakan man Zenity dan Zenity --help .

Kesimpulan

Dalam panduan di atas, Anda mempelajari bagaimana Anda dapat menulis skrip bash untuk menampilkan dialog GUI menggunakan Zenity dan membuat skrip Bash lebih ramah pengguna. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Linux
  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Bagaimana Cara Mengatur Parameter Saat Pipa Bash Script Ke Bash?

  3. Bagaimana cara meneruskan parameter ke skrip Bash?

  1. Cara mengganti spasi pada nama file menggunakan skrip bash

  2. Cara menampilkan hanya baris yang berbeda menggunakan diff (bash)

  3. Bagaimana cara mengecek akses internet menggunakan skrip bash di linux?

  1. Bagaimana cara mengurai header HTTP menggunakan Bash?

  2. Bagaimana cara menambahkan pekerjaan crontab ke crontab menggunakan skrip bash?

  3. Bagaimana cara menjalankan skrip bash?