Cara Membuat Kotak Dialog GUI Dalam Skrip Bash Dengan Zenity Di Linux Dan Unix

Ketika berbicara tentang skrip bash, semua skrip terutama difokuskan pada operasi baris perintah. Apakah Anda memerlukan masukan dari pengguna atau menampilkan beberapa pesan, semuanya dilakukan melalui terminal. Kebanyakan orang yang menulis skrip menggunakan Bash tidak tahu ada seperangkat alat GUI yang tersedia. Pada artikel ini, kita akan melihat tentang salah satu alat yang disebut Zenity – program sederhana yang memungkinkan Anda membuat kotak dialog grafis (GTK+) di baris perintah dan skrip shell.
Contents
Apa itu Zenity?Bagaimana cara menginstal Zenity di Linux1. Bantuan Zenity & opsi umum2. Kotak dialog pesan2.1. Kotak dialog kesalahan2.2. Kotak dialog peringatan2.3. Kotak dialog informasi2.4. Kotak dialog pertanyaan3. Kotak dialog entri teks4. Kotak dialog kata sandi5. Kotak dialog informasi teks6. Kotak dialog kalender7. Kotak dialog pemilihan warna8. Kotak dialog pemilihan file9. Kotak dialog formulir10. Kotak dialog kemajuan11. Daftar Dialog BoxKesimpulanApa itu Zenity?

Zenity adalah penulisan ulang gdialog, port dialog GNOME yang memungkinkan Anda membuat satu set widget untuk operasi berbeda di mana pengguna dapat berinteraksi dengan skrip secara grafis. Widget didasarkan pada toolkit GTK.

Zenity adalah program open source yang ditulis menggunakan bahasa pemrograman C. Mendukung Linux, BSD dan Windows.

Tanpa basa-basi lagi, mari kita lihat bagaimana menampilkan kotak dialog GTK+ grafis dari commandline dan skrip shell menggunakan Zenity.
Cara menginstal Zenity di Linux

Pertama, periksa apakah zenity sudah diinstal dan tersedia untuk digunakan dengan menjalankan perintah berikut:

$ which zenity /usr/bin/zenity
$ zenity --version 3.32.0
$ zenity --about

Jika zenity tidak diinstal di distribusi Anda, jalankan perintah berikut tergantung pada distribusi Anda untuk menginstalnya.

Alpine Linux:

$ sudo apk tambahkan zenity

Arch Linux:

$ sudo pacman -S zenity

Fedora, RHEL, CentOS, Alma Linux dan Rocky Linux:

$ sudo dnf instal zenity

Debian apxpreU$zendobspxpxpre Ubuntu, Linux Mint sudo zypper menginstal zenity1. Bantuan Zenity & opsi umum

Untuk setiap widget, ada opsi bantuan terkait yang dapat digunakan untuk mendapatkan serangkaian opsi yang didukung.

Jalankan perintah berikut untuk mengakses bagian bantuan.

$ zenity --help

Ada beberapa opsi umum yang dapat digunakan bersama dengan widget apa pun. Ini bukan opsi wajib tetapi jika digunakan akan mempengaruhi Anda untuk mengubah perilaku widget.

Untuk mendapatkan daftar opsi umum, jalankan perintah berikut.

$ zenity --help-general

Kita akan melihat cara kerja opsi ini di bagian mendatang.
2 . Kotak dialog pesan

Sebuah kotak dialog pesan akan menampilkan kotak dialog kesalahan, peringatan, info, dan pertanyaan. Tergantung pada situasinya, Anda harus menggunakan kotak dialog yang sesuai di script.
2.1. Kotak dialog kesalahan

Untuk mengakses daftar opsi yang didukung untuk kotak dialog kesalahan, jalankan perintah berikut:

$ zenity --help-error

Untuk menampilkan kotak dialog kesalahan dalam skrip, gunakan perintah berikut. Di sini, flag –error akan membuat kotak dialog error dan –text flag akan mencetak pesan teks. Anda dapat melihat dari gambar ada ikon kesalahan yang terkait dengan kotak dialog.

zenity --error  --title "Pesan Kesalahan"  --width 500  --height 100  --text "Izin ditolak. Jalankan dengan sudo atau sebagai pengguna root."

Anda juga dapat melihat dari gambar di atas, beberapa opsi umum seperti –width, –height digunakan untuk mengontrol geometri kotak dialog. Bendera –title digunakan untuk mencetak dialog bar dengan title.
2.2. Kotak dialog peringatan

Untuk mengakses daftar opsi yang didukung untuk kotak dialog peringatan, jalankan perintah berikut:

$ zenity --help-warning

Use –warning flag dalam skrip untuk menampilkan kotak peringatan dan –text flag untuk menampilkan pesan peringatan .

zenity --warning  --title "Pesan Peringatan"  --width 500  --height 100  --text "Ruang disk melebihi batas ambang batas. Periksa ASAP."

2.3. Kotak dialog info

Untuk mengakses daftar opsi yang didukung untuk kotak dialog info, jalankan perintah berikut:

$ zenity --help-info

Use –info flag dalam skrip untuk menampilkan kotak info dan –text flag untuk menampilkan pesan info.

zenity --info  --title "Pesan Info"  --width 500  --height 100  --text "Instalasi berhasil diselesaikan."

2.4. Kotak dialog pertanyaan

Untuk mengakses daftar opsi yang didukung untuk kotak dialog pertanyaan, jalankan perintah berikut:

$ zenity --help-question

Kotak dialog pertanyaan akan menampilkan pesan bersama dengan opsi Ya atau Tidak. Jika Anda menekan “Ya”, kode pengembalian akan menjadi “nol” dan untuk “Tidak” kode pengembalian akan menjadi “satu”. Anda harus menggunakan kode keluar untuk menulis logika lebih lanjut di scripts.

zenity --info  --title "Pesan Info"  --width 500  --height 100  --text "Instalasi selesai dengan sukses."
  1. Kotak dialog entri teks

    Untuk mengakses daftar opsi yang didukung untuk kotak dialog entri teks, jalankan perintah berikut:

$ zenity --help-entry

Kotak dialog entri teks meminta input untuk pengguna. Bendera –entry digunakan untuk membuat kotak dialog entri. Untuk menampilkan beberapa teks dalam kotak dialog, gunakan tanda –text. Nilai yang dimasukkan dalam kotak teks akan dicetak di terminal setelah Anda menekan ok. Anda harus menyimpan output ke variabel jika Anda ingin memproses lebih lanjut input dari kotak teks seperti yang saya lakukan di bawah ini.

$ USR=$(zenity --entry  --width 500  --title "check user"  --text "Masukkan nama pengguna"); echo $USR

Jika Anda tidak ingin membuat teks input terlihat saat mengetik, gunakan flag –hide-text.

$ USR=$(zenity --entry  --width 500  --title "check user"  - -text "Masukkan nama pengguna"  --hide-text); echo $USR

Anda juga dapat menyetel nilai default di dalam kotak input menggunakan flag –entry-text. Anda harus menghapus nilai dan memberikan masukan Anda atau nilai yang ada akan diambil sebagai default.

$ USR=$(zenity --entry  --width 500  --title "check user"  --text "Enter the nama pengguna"  --entry-text $USER); echo $USR
  1. Kotak dialog kata sandi

    Untuk mengakses daftar opsi yang didukung untuk kotak dialog kata sandi, jalankan perintah berikut:

$ zenity --help-password

Kotak dialog kata sandi akan menerima nama pengguna dan kata sandi menggunakan –username dan –password bendera. Output akan ditampilkan sebagai (Nama Pengguna | Kata Sandi). Anda harus menetapkan output dari perintah ke variabel dan mengekstrak nama pengguna dan kata sandi untuk diproses lebih lanjut.

$ zenity --password --username
  1. Kotak dialog informasi teks

    Untuk mengakses daftar opsi yang didukung untuk kotak dialog informasi teks, jalankan perintah berikut:

$ zenity --help-text-info

Kotak dialog informasi teks akan mencetak teks apa pun dari file atau membuka URL di kotak dialog. Misalnya, untuk membaca file dan menampilkan teks gunakan flag –filename. Dalam contoh di bawah ini, saya membaca file /etc/hosts.
zenity –text-info –title “Informasi Hostname” –filename “/etc/hosts”
The –checkbox flag dapat digunakan untuk mendapatkan masukan dari pengguna. Contoh yang baik adalah “Menerima perjanjian lisensi”. Kecuali Anda memilih kotak centang, tombol ok akan dinonaktifkan.
zenity –text-info –title “Informasi Nama Host” –nama file “/etc/hosts” –kotak centang “Ini adalah kotak centang” 6. Kalender kotak dialog

Untuk mengakses daftar opsi yang didukung untuk kotak dialog kalender, jalankan perintah berikut:

$ zenity --help-calendar

Kotak dialog kalender akan menampilkan kalender dan memungkinkan Anda memilih tanggal. Anda harus menyimpan output ke variabel lain tanggal yang dipilih akan dicetak di terminal.

zenity --calendar  --title="Pilih Tanggal"  --text="Pilih Tanggal untuk menarik catatan karyawan."

Secara default, tanggal hari ini dipilih tetapi kami juga dapat memilih tanggal khusus dengan menggunakan –day, –month, dan –year flags.

zenity --calendar  --title="Pilih Tanggal"  --text= "Pilih Tanggal untuk menarik catatan karyawan."  --year 2015  --month 7  --day 15

Format output default adalah DDMMYY. Hal ini juga memungkinkan untuk membuat keluaran tanggal kustom menggunakan –date-format flag.

zenity --calendar  --title="Pilih Tanggal"  --text="Pilih Tanggal untuk menarik catatan karyawan."  --date-format %m-%d-%y
  1. Kotak dialog pemilihan warna

    Untuk mengakses daftar opsi yang didukung untuk kotak dialog pemilihan warna, jalankan perintah berikut:

$ zenity --help-color-selection

Pemilihan warna dialog akan menampilkan palet dan memungkinkan Anda untuk memilih warna dan output akan menjadi nilai RGB. Gunakan flag –color-selection bersama dengan –show-palette flag.

$ COLOR_RGB=$(zenity --color-selection --show-palette) $ echo $COLOR_RGB
  1. Kotak dialog pemilihan file

    Untuk mengakses daftar opsi yang didukung untuk kotak dialog pemilihan file, jalankan perintah berikut:

$ zenity --help-file-selection

Dialog pemilihan file akan memungkinkan Anda untuk memilih file atau direktori dan jalur ditampilkan sebagai output. Bendera –file-selection harus digunakan. Ada beberapa flag yang dapat digunakan dalam dialog pemilihan file.
–filename => Path ke file/direktori default–directory => Hanya direktori yang akan dipilih–multiple => Memungkinkan untuk memilih beberapa nama file- -save => Atur untuk menyimpan mode

zenity --file-selection  --title "Select Files"  --filename "/home/${USER}/"  --multiple

Dalam kasus beberapa pilihan, jalur file akan dipisahkan menggunakan “|” symbol.

Dimungkinkan untuk menyetel pemisah khusus menggunakan flag –separator. Pada contoh di bawah ini, saya menggunakan titik dua (:) sebagai pemisah.

zenity --file-selection  --title "Select Files"  --filename "/home/${USER}/"  --multiple  - -separator :
  1. Kotak dialog formulir

    Untuk mengakses daftar opsi yang didukung untuk kotak dialog formulir, jalankan perintah berikut:

$ zenity --help-forms

Dialog formulir memungkinkan Anda membuat formulir. Contoh yang baik adalah formulir pendaftaran pengguna baru. Gunakan tanda –forms untuk membuat kotak dialog formulir. Ada beberapa flag tambahan yang dapat digunakan bersama dengan –forms flag.
–add-entry => Tambahkan entri baru dalam dialog formulir agar pengguna dapat memasukkan input.–text => Text to be ditampilkan di kotak dialog.–add-password => Menerima kata sandi tetapi tidak akan menampilkan nilai di layar.–calendar => Buka kalender dan pilih tanggal darinya.
Di bawah ini adalah contoh sederhana dari formulir pendaftaran pengguna menggunakan bentuk dialog.

zenity --forms  --text "Selamat datang di wizard pendaftaran"  --add-entry "Masukkan nama depan"  --add-entry "Masukkan nama belakang"  --add-entry "Masukkan nama login"  --add-password "Masukkan kata sandi"

Pemisah default untuk nilai input adalah “|” simbol. Anda juga dapat menyesuaikan pemisah menggunakan –separator flag.
10. Kotak dialog kemajuan

Untuk mengakses daftar opsi yang didukung untuk kotak dialog bilah kemajuan, jalankan perintah berikut:

$ zenity --help-progress

Use –progress flag untuk membuat bilah kemajuan. Untuk membuat bilah kemajuan, Anda harus memahami cara kerjanya. Dua input harus disediakan dari sisi Anda.
Baris yang hanya berisi angka dengan perintah echo akan dianggap sebagai persentase kemajuan. Baris yang dimulai dengan simbol # dalam perintah echo akan dicetak sebagai pesan kemajuan .

( echo 10 echo "# Memperbarui Indeks repositori" sleep 5 echo 15 echo "# Membaca file input" sleep 5 echo 70 echo "# Menginstal paket..." sleep 5 echo 100 echo "# Instalasi Paket selesai!" ) | zenity --title "Package Installation Progress Bar" --progress --auto-close

Setelah bilah kemajuan selesai, Anda dapat membuat kotak dialog untuk menutup secara otomatis menggunakan –auto-close flag.
11. Kotak dialog daftar

Untuk mengakses daftar opsi yang didukung untuk kotak dialog daftar, jalankan perintah berikut:

$ zenity --help-list

Kotak dialog daftar memungkinkan Anda membuat daftar baris dan kolom. Gunakan –list flag untuk membuat kotak dialog daftar dan –column flag untuk menambahkan kolom.

$ zenity --list  --column "Player"  --column "Club"  --column "Country"  Messi PSG Argentina  Neymar PSG Brazil  Ronaldo Manu Portugal

Perhatikan contoh di atas. Menggunakan flag –column, saya telah membuat tiga kolom. Setelah kolom dibuat, Anda dapat memasukkan nilai di baris berikutnya yang akan ditampilkan untuk setiap baris seperti yang saya lakukan pada gambar di atas.

Di kolom pertama, kotak centang atau tombol radio dapat dibuat. Untuk membuat tombol radio, gunakan tanda –radiolist dan untuk membuat kotak centang, gunakan tanda –checklist. Saat membuat daftar radio, wajib untuk menambahkan kata kunci TRUE atau FALSE sebagai nilai pertama untuk baris Anda. True akan memilih radiolist atau checkbox sementara false akan membiarkan kotak tidak dipilih.

zenity --list  --checklist  --column "checkbox"  --column "Player"  --column "Club"  --column "Negara "  FALSE Messi PSG Argentina  FALSE Neymar PSG Brazil  FALSE Ronaldo Manu Portugal

Ketika Anda memilih baris dan klik ok, nilai akan dicetak ke terminal dengan (|) sebagai pemisah. Secara default, hanya kolom pertama yang dicetak ke terminal. Untuk mencetak seluruh baris, lewati –print-column ALL.
Conclusion

Kita telah sampai di akhir artikel. Saya telah menjelaskan secara singkat apa itu zenity dan berbagai widget yang tersedia untuk digunakan. Anda mungkin tidak memerlukan utilitas GUI sepanjang waktu. Namun, ketika Anda membutuhkan widget GTK+ grafis dalam skrip bash, Zenity akan berguna di antara alat GUI lainnya.

Resource:
Zenity Manual
Bash scripting guides:
Bash Scripting – Case StatementBash Scripting – Conditional StatementsBash Scripting – String ManipulationBash Scripting – Perintah Printf Dijelaskan Dengan ExampleBash Scripting – Array Terindeks Dijelaskan Dengan ContohBash Scripting – Array Asosiatif Dijelaskan Dengan ContohBash Scripting – Untuk Penjelasan Loop Dengan ContohBash Scripting – Sementara Dan Sampai Loop Dijelaskan Dengan ContohPengalihan Bash Dijelaskan Dengan ContohBash Scripting – Variabel Dijelaskan Dengan ContohBash Scripting – Fungsi Dijelaskan Dengan ContohBash Perintah Gema Dijelaskan Dengan Contoh Di LinuxBash Heredoc Tutorial Untuk Pemula

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

%d bloggers like this: