Hvordan lage enkle grafiske Shell-skript med Zenity på Linux
Zenity legger til grafiske grensesnitt til shell-skript med en enkelt kommando. Shell-skript er en fin måte å automatisere repeterende oppgaver på, men de er normalt begrenset til terminalen. Zenity bringer dem ut av terminalen og på skrivebordet.
Vi har gitt en introduksjon til shell scripting i fortiden. Du trenger ikke å være programmerer for å komme i gang med shell-skript - de krever lite mer enn kunnskap om Linux-terminalkommandoer.
Å få Zenity
Zenity kommer som standard med Ubuntu. Hvis du bruker et Ubuntu-derivat, for eksempel Kubuntu, må du kanskje installere det manuelt med følgende kommando:
sudo apt-get install zenity
Zenity er en del av GNOME, så det bør allerede være inkludert på Linux-distribusjoner som bruker GNOME-skrivebordet. Kontroller pakkebehandleren din for Zenity pakke hvis du ikke har det.
Bruke Zenity
Du kan leke med Zenity fra terminalen. La oss si at du vil opprette et feilvindu når et problem oppstår med shell-skriptet ditt. Her er et eksempel på kommando du kan bruke:
zenity -error -title = "En feil oppstod" -text = "Det oppsto et problem mens du kjørte shell-skriptet."
Kjør kommandoen, og du vil se et vindu med meldingen.
Sett denne kommandoen i shell-skriptet ditt på riktig sted, og du vil ha en grafisk feilmelding. Du kan også bruke variabler til å inkludere mer informasjon om feilen.
La oss si at du vil stille et ja eller nei spørsmål. Du kan bruke en kommando som denne:
zenity -question -title = "Query" -text = "Vil du kjøre skriptet?"
Du kan fange ja eller nei respons i shell-skriptet ditt og utføre forskjellige kommandoer basert på hvilken knapp brukeren klikker på.
Det er også en dialogboksen for inntasting av tekst:
zenity -entry -title = "Favorittnettsted" -text = "Hva er ditt favorittnettsted?"
Fang brukerens innspill i et shell-skript, og du kan lagre det som en variabel.
Det er også en filvalg, kalender og andre typer dialoger. For en fullstendig liste over dialogtyper og deres alternativer, se Zenitys manuelle side.
Et eksempelskript
La oss prøve å bruke Zenity til å lage et enkelt grafisk skallskript. Med bare tre kommandoer kan vi lage et grafisk timerprogram:
#! / Bin / bash
# Dette skriptet spør brukeren om en tid, venter det angitte beløpet
# av tid, og viser en varslingsdialog.TIME = $ (zenity -entry -title = "Timer" -text = "Angi en varighet for timeren. \ N \ n Bruk 5s i 5 sekunder, 10m i 10 minutter eller 2h i 2 timer.")
sov $ TIME
zenity -info -title = "Timer Complete" -text = "Timeren er over. \ n \ n Det har vært $ TIME."
Vi bruker litt ekstra triks her. Vi får verdien av TIME-variabelen fra den første zenity-kommandoen, og mat den til søvnkommandoen. Vi bruker også / n for å lage nye tekstlinjer i Zenity-dialogene.
Etter å ha lagret shell scriptet og kjører chmod + x kommandoen på den for å gi den kjørbare tillatelser, kan vi starte den.
Skriv inn en varighet, og skriptet vil bruke standarden sove kommando å telle ned i bakgrunnen. Når søvnkommandoen er ferdig, vil skriptet vise meldingsinformasjonen.
Du kan opprette en skrivebords- eller panelgenvei for dette skriptet og kjøre det uten å berøre terminalen.
Dette skraper bare overflaten av det du kan gjøre med zenity; du kan bruke den til å gjøre mye mer kompliserte programmer. Hvis du leter etter mer informasjon om shell scripting, kan du se vår guide til bruk for looper i shell-skript.