Hemsida » hur » Hur man gör enkla grafiska Shell-skript med Zenity på Linux

    Hur man gör enkla grafiska Shell-skript med Zenity på Linux

    Zenity lägger till grafiska gränssnitt till skalskript med ett enda kommando. Shell-skript är ett bra sätt att automatisera repeterande uppgifter, men de är normalt begränsade till terminalen - Zenity tar dem ut ur terminalen och på skrivbordet.

    Vi har tidigare presenterat Shell Scripting. Du behöver inte vara programmerare för att komma igång med skalskript - de kräver lite mer än kunskap om Linux-terminalkommandon.

    Få Zenity

    Zenity kommer som standard med Ubuntu. Om du använder ett Ubuntu-derivat, t.ex. Kubuntu, måste du installera det manuellt med följande kommando:

    sudo apt-get install zenity

    Zenity är en del av GNOME, så det bör redan ingå i Linux-distributioner som använder GNOME-skrivbordet. Kolla din pakethanterare för zenity packa om du inte har det.

    Använda Zenity

    Du kan leka med Zenity från terminalen. Låt oss säga att du vill skapa ett felfönster när ett problem uppstår med skalskriptet. Här är ett exempel som du kan använda:

    zenity -error -title = "Ett fel uppstod" -text = "Ett problem uppstod när skriptet kördes."

    Kör kommandot och du får se ett fönster med meddelandet.

    Sätt det här kommandot i ditt skalskript på rätt plats och du får ett grafiskt felmeddelande. Du kan också använda variabler för att inkludera mer information om felet.

    Låt oss säga att du vill ställa en ja eller ingen fråga. Du kan använda ett kommando som den här:

    zenity -question -title = "Query" -text = "Vill du köra skriptet?"

    Du kan få ja eller inget svar i ditt skalskript och utföra olika kommandon baserat på vilken knapp användaren klickar på.

    Det finns också en textinmatningsdialog:

    zenity -entry -title = "Favoritwebbplats" -text = "Vad är din favoritwebbplats?"

    Fånga användarens inmatning i ett skalskript och du kan lagra det som en variabel.

    Det finns också en filväljare, kalender och andra typer av dialoger. För en fullständig lista över dialogtyper och deras alternativ, se Zenitys manualsida.

    Ett exempelskript

    Låt oss försöka använda Zenity för att skapa ett enkelt grafiskt skalskript. Med bara tre kommandon kan vi skapa ett grafiskt timerprogram:

    #! / Bin / bash
    # Det här skriptet frågar användaren en tid, väntar på det angivna beloppet
    # av tiden och visar en varningsdialogruta.

    TIME = $ (zenity -entry -title = "Timer" -text = "Ange en varaktighet för timern. \ N \ n Använd 5s i 5 sekunder, 10m i 10 minuter eller 2h i 2 timmar.")

    sova $ TIME

    zenity -info -title = "Timer Complete" -text = "Timern är över. \ n \ n Det har varit $ TIME."

    Vi använder lite extra knep här. Vi får värdet av TIME-variabeln från det första zenity-kommandot och matar det till sovkommandot. Vi använder också / n att skapa nya textrader i zenitydialogerna.

    Efter att ha sparat skalskriptet och kör chmod + x kommandot på det för att ge det körbara behörigheter, kan vi starta det.

    Ange en varaktighet och skriptet använder standarden sova Kommando att räkna ner i bakgrunden. När sömnkommandot sändare slutar visas skriptet med zenitetsinfo.

    Du kan skapa en skrivbords- eller paneldroggen för det här skriptet och köra det utan att ens röra terminalen.


    Detta skrapar bara ytan på vad du kan göra med zenity; du kan använda den för att göra mycket mer komplicerade program. Om du letar efter mer information om skalskriptning, kolla in vår guide för att använda för loopar i skalskript.