Zenity - Oppretter grafiske (GTK+) dialogbokser i kommandolinje- og skallskript


GNU Linux, operativsystemet bygget på en veldig kraftig kjerne kalt Linux. Linux er kjent for sine kommandolinjeoperasjoner. Med oppfinnelsen av Linux i dag-til-dag og stasjonær databehandling, forblir nix ikke lenger partisk mot kommandolinje, den er like grafisk og utvikling av grafisk applikasjon er ikke lenger en vanskelig oppgave.

Her i denne artikkelen vil vi diskutere opprettelse og utførelse av enkel grafisk dialogboks ved hjelp av GTK+-applikasjonen kalt Zenity.

Hva er Zenity?

Zenity er en åpen kildekode og en tverrplattformapplikasjon som viser GTK+-dialogbokser på kommandolinje og ved hjelp av shell-skript. Den lar deg spørre og presentere informasjon til/fra shell i grafiske bokser. Programmet lar deg lage grafiske dialogbokser på kommandolinjen og gjør interaksjonen mellom bruker og skall veldig enkelt.

Det finnes andre alternativer, men ingenting kan sammenlignes med enkelheten til Zenity, spesielt når du ikke trenger kompleks programmering. Zenity, et verktøy du må ha hendene på.

  1. FOSS-programvare
  2. Applikasjon på tvers av plattformer
  3. Tillat kjøring av GTK+-dialogboks
  4. Kommandolinjeverktøy
  5. Støtte for Shell-skripting

  1. Enkel GUI-oppretting
  2. Mindre funksjoner enn andre komplekse verktøy
  3. Gjør det mulig for shell-skript å samhandle med GUI-brukere
  4. Enkel dialogoppretting er mulig for grafisk brukerinteraksjon

Siden Zenity er tilgjengelig for alle kjente hovedplattformer, og basert på GTK+-biblioteket, kan Zenity-programmet porteres til/fra en annen plattform.

Installasjon av Zenity i Linux

Zentity er som standard installert eller tilgjengelig i depotet til det meste av dagens standard Linux-distribusjon. Du kan sjekke om er installert på maskinen eller ikke ved å utføre følgende kommandoer.

[email :~$ zenity --version 

3.8.0
[email :~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

Hvis den ikke er installert, kan du installere den ved å bruke Apt- eller Yum-kommandoen som vist nedenfor.

[email :~$ sudo apt-get install zenity		[on Debian based systems]

[email :~# yum install zenity				[on RedHat based systems]

Dessuten kan du også bygge den fra kildefilene, laste ned den nyeste Zenity-kildepakken (dvs. gjeldende versjon 3.8) ved å bruke en følgende lenke.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Zenity Basic-dialogbokser

Noen av de grunnleggende dialogene til Zenity, som kan påkalles direkte fra kommandolinjen.

[email :~# zenity --calendar
[email :~# zenity --error
[email :~# zenity --entry
[email :~# zenity --info
[email :~# zenity --question
[email :~# zenity --progress
[email :~# zenity --scale
[email :~# zenity --password
[email :~# zenity --forms
[email :~# zenity --about

Lag Shell Script Dialog

Nå skal vi diskutere oppretting av Zenity Dialog ved å bruke enkle skallskript her. Selv om vi kan lage en enkelt dialogboks ved å utføre Zenity-kommandoer direkte fra skallet (som vi gjorde ovenfor), men da kan vi ikke koble to dialogbokser for å få et meningsfylt resultat.

Hva med en interaktiv dialogboks som tar innspill fra deg, og viser resultatet.

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Lagre den til 'anything.sh' (konvensjonelt) og ikke glem å gjøre den kjørbar. Sett 755-tillatelse på any.sh-filen og kjør skriptet.

[email :~# chmod 755 anything.sh 
[email :~# sh anything.sh

Den konvensjonelle shebang aka hashbang

#!/bin/bash

På linjen nedenfor er 'først' en variabel og verdien av variabelen genereres under kjøretid.

    1. ‘–oppføring’ betyr at zenity blir bedt om å generere en tekstinntastingsboks.
    2. ‘– title=‘ definerer tittelen på generert tekstboks.
    3. ‘—text=‘ definerer teksten som er tilgjengelig i tekstinntastingsboksen.

    first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

    Denne linjen i skriptfilen nedenfor er for generering av informasjonsdialogboks (–info), med tittelen «Velkommen» og teksten «Mr./Ms.first»

    zenity --info --title="Welcome" --text="Mr./Ms. $first"

    Denne linjen i skriptet er lik linje nummer to i skriptet, bortsett fra at her er en ny variabel 'siste' definert.

    last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

    Denne siste linjen i skriptet ligner igjen på den tredje linjen i skriptet, og den genererer informasjonsdialogboks som inneholder både variablene '$first' og '$last'.

    zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

    For mer informasjon om hvordan du lager egendefinerte dialogbokser ved hjelp av shell script, besøk på følgende referanseside Zenity.

    1. https://help.gnome.org/users/zenity/stable/

    I den neste artikkelen vil vi integrere Zenity med mer shell-skript for GUI-brukerinteraksjon. Inntil da, følg med og koble til Tecmint. Ikke glem å gi din verdifulle tilbakemelding i kommentarfeltet.