GNU/Linux >> Belajar Linux >  >> Linux

Menambahkan GUI Sederhana ke skrip shell Linux dengan kdialog

Skrip shell adalah hal yang sangat berguna. Mereka memungkinkan Anda untuk melakukan sesuatu yang mendasar seperti membuat perintah yang mudah untuk mengganti yang lebih sulit dengan banyak flag, untuk mengelompokkan banyak perintah kompleks untuk dijalankan dari pekerjaan cron. Mereka hebat karena Anda dapat dengan cepat mengaktifkannya di terminal favorit Anda, tetapi dalam beberapa kasus mereka mengharuskan Anda untuk mengingat kombinasi bendera atau opsi tertentu. Jika Anda berada dalam situasi ini, Anda dapat menambahkan beberapa dialog GUI sederhana untuk membantu Anda mempercepat tugas yang ada.

Untuk menggunakan tutorial ini, Anda memerlukan yang berikut:

  • Akses ke shell mirip Unix (ini ditulis dengan mempertimbangkan bash).

  • macOS dan *nix OS (seperti Linux) harus disertakan dengan ini atau yang serupa.

  • Di Windows, Anda dapat menginstal lingkungan CygWin, atau pada versi terbaru Windows 10 gunakan "Subsistem Windows untuk Linux"

  • Pustaka dasar untuk lingkungan desktop KDE. Anda tidak memerlukan semuanya, terutama jika Anda sudah menginstal DE lain.

Menginstal kdialog hanya diperlukan jika Anda memulai dengan lingkungan desktop lainnya selain KDE, dan Anda tidak memiliki aplikasi KDE lain di mesin Anda. Ini adalah bagian dari paket kde-baseapps-bin di Ubuntu, yang berarti sudah terinstal secara default di Kubuntu. Pada turunan lainnya, Anda dapat menginstalnya dengan perintah berikut di terminal:

Menginstal kdialog dari terminal.

sudo apt-get install kde-baseapps-bin

Ini kemungkinan akan menghasilkan instalasi yang cukup besar, karena pustaka dan paket KDE lainnya akan diinstal bersamanya. Tapi hei, ruang hard drive itu murah, kan?

Karena skrip (secara umum) seharusnya melakukan sesuatu secara otomatis, kita hanya perlu menampilkan dialog ini dalam situasi berikut:

  • Jika kita perlu menangkap semacam masukan dari pengguna, atau;

  • Jika kami ingin menunjukkan kepada pengguna semacam umpan balik dengan cara yang nyata (yaitu bukan hanya beberapa teks yang dimuntahkan di baris perintah).

Mari kita ambil contoh menggunakan perintah untuk [mencadangkan situs Drupal Anda menggunakan drush]. Tentu saja, karena Anda seorang pengusaha Internet pemula, Anda tidak hanya memiliki satu situs Drupal—? Anda memiliki tiga. Anda lebih suka tidak harus menjalankan perintah terpisah ketika Anda ingin mencadangkan semua situs Anda, tetapi pada saat yang sama Anda tidak ingin harus mengingat jalur yang panjang jika Anda ingin mengambil snapshot dari satu situs saja. Kita dapat menggunakan beberapa dialog untuk membantu diri kita sendiri dengan:

  • Berikan daftar situs yang dapat kami cadangkan kepada pengguna, dan beri dia pilihan, dan;

  • Tunjukkan kepada pengguna pesan yang mengonfirmasi hasil, apakah itu berhasil atau gagal.

kDialog bekerja dengan memanggilnya di baris perintah bersama dengan tipe dialog , parameter apa pun yang mungkin diperlukan oleh tipe tersebut, dan opsi lain seperti judul dialog.

Ada berbagai jenis dialog yang dapat dipilih sesuai dengan kebutuhan Anda, sebagai berikut:

Jenis kDialog
Jenis Dialog Contoh Gambar Deskripsi

Kotak Pesan Informasi

Menampilkan kotak dengan tombol "OK" untuk menutup, memberikan pesan teks dan ikon informasi, peringatan, atau kesalahan "tidak kritis".

Pop-up Pasif

Ini menampilkan pesan yang akan hilang dalam beberapa detik, yaitu tidak mengharuskan pengguna untuk menutup atau mengabaikannya.

Ya/Tidak Kotak Pesan

Seperti "Kotak Pesan Informasi", ini menampilkan dialog dengan ikon informasi/peringatan/kesalahan yang juga akan memberikan pilihan "Ya" atau "Tidak" bagi pengguna.

Masukkan Kotak Dialog

Ini menyediakan satu kotak di mana pengguna dapat mengetik beberapa teks.

Kotak Tampilan File

Ini akan menampilkan konten file (teks biasa) di dalam kotak dialog.

Kotak Dialog Menu dan Pilihan

Ini menyediakan dialog dengan daftar item, memungkinkan pengguna untuk membuat satu atau lebih pilihan:

  • Dialog Menu dan Radiolist memungkinkan pemilihan satu opsi.

  • Dialog Daftar Periksa memungkinkan pemilihan satu, beberapa, atau semua opsi.

  • Dialog Kotak Kombo memungkinkan pemilihan satu opsi menggunakan menu tarik-turun.

Kotak Dialog Pemilihan File

Pengguna dapat memilih bagian dari sistem file, termasuk:

  • Pilih file yang ada, dengan kemampuan untuk memfilter berdasarkan nama atau jenis file

  • Masukkan file baru untuk disimpan/diperbarui

  • Direktori

Dialog Kemajuan

Pengguna dapat menggabungkan kDialog dengan perintah dcop untuk membuat dialog yang memperbarui pengguna tentang kemajuan operasi.

Melihat opsi di atas, dua di antaranya memiliki potensi:

  • "Dialog Daftar Periksa" akan memungkinkan kami memilih satu, atau semua, situs kami untuk dicadangkan.

  • "Kotak Pesan Informasi" dapat digunakan untuk menampilkan apakah masing-masing berhasil atau gagal.

Dengan opsi ini, kita dapat membayangkan skrip kita terlihat seperti ini:

SITE1 is located HERE (make these full paths, not relative paths)
SITE2 is located THERE
SITE3 is located IN ANOTHER PLACE

display a kDialog with SITE1, SITE2, and SITE3 as options
    and tell me which one(s) the user picks

for each one the user picked:
    run +drush ard+ on that site, and
    record whether it was successful or not.

display another +kDialog+ with each of those results.

Dengan mengingat hal itu, mari selami.

Hal pertama yang harus kita lakukan adalah merakit perintah drush yang ingin kita terapkan ke setiap situs saat dipilih. Misalkan semua situs berada di host web yang sama di direktori yang berbeda, tetapi kami ingin menyimpan cadangan di direktori "cadangan" yang sama. Kita dapat menggunakan yang berikut ini:

cd SITE
drush ard --destination=/home/user/backup/SITENAME.tar.gz

Jadi dengan menggunakan pengetahuan Anda tentang pengaturan variabel dan untuk loop, kita dapat membuat skrip ini sebagai berikut:

#! /bin/bash

// Note: create variables to hold paths to all the sites
PERSONALSITE='/home/www/mypersonalsite/'
BUSINESSSITE='/home/www/mybusinesssite/'
HOBBYSITE='/home/www/myhobbysite/'

// Note: create variable to hold path to the destination
DESTINATION='/home/user/backup'

// Note: display a dialog asking the user to select which sites to back-up
CHOICES=$(kdialog --checklist "Select sites to back-up:" 1 "Personal site" off 2 "Business Site" off 3 "Hobby site" off)

// Note: log a success/failure message for each of the choices returned from dialog
for each in $CHOICES
do
    case {
        1)
            cd $PERSONALSITE
            drush ard --destination=$DESTINATION/mypersonalsite.tar.gz
            if [$?=="0"]
            then
                RESULTS += "Personal site backup: Succeeded\n"
            else
                RESULTS += "Personal site backup: Failed\n"
            fi
        2)
            cd $BUSINESSSITE
            drush ard --destination=$DESTINATION/mybusinesssite.tar.gz
            if [$?=="0"]
            then
                RESULTS += "Business site backup: Succeeded\n"
            else
                RESULTS += "Business site backup: Failed\n"
            fi
        3)
            cd $HOBBYSITE
            drush ard --destination=$DESTINATION/myhobbysite.tar.gz
            if [$?=="0"]
            then
                RESULTS += "Hobby site backup: Succeeded\n"
            else
                RESULTS += "Hobby site backup: Failed\n"
            fi
    esac

// NOTE: display a dialog with the results of all the backup operations.
kdialog --msgbox $RESULTS

Jika kita menyimpan ini dan membuatnya dapat menjalankannya seperti yang dijelaskan dalam artikel pertama dalam seri Bash, kita akan dapat menjalankan satu perintah, dapatkan dialog yang mudah digunakan untuk memilih situs kita, lalu lihat pelaporan jendela yang bagus kembali bagaimana semuanya berjalan.

Meskipun skrip ini dapat dioptimalkan dalam beberapa cara, skrip ini menunjukkan bagaimana Anda dapat menggunakan kdialog untuk mengumpulkan beberapa input pengguna dan menampilkan beberapa hasil dengan menjalankan satu program di dalam skrip Anda.


Linux
  1. Lakukan matematika di shell Linux dengan GNU bc

  2. Dasar-dasar Linux:Cara Mengunduh File di Shell Dengan Wget

  3. Bagaimana Mengurai Json Dengan Shell Scripting Di Linux?

  1. Perintah Linux Paling Sederhana Dengan 10 Contoh

  2. Parameter Khusus Bash Dijelaskan dengan 4 Contoh Skrip Shell

  3. Parameter Posisi Bash Dijelaskan dengan 2 Contoh Skrip Shell

  1. Bagaimana saya bisa melakukan pembagian dengan variabel di shell Linux?

  2. Mengapa menjalankan perintah shell Linux dengan '&'?

  3. Bagaimana Linux menangani skrip shell?