Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Zenity part 2  (gelezen 2014 keer)

Offline Kev

  • Lid
Zenity part 2
« Gepost op: 2008/07/26, 16:09:39 »
Nu heb ik met zenity een leuk scriptje geschreven dat enkel statistieken kan opvragen over schijfgebruik, aangemeldde gebruikers en nog enkele.
Mooi vormgegeven in een bashscriptje en eens het scripje draait krijg je een schermgebaseerde versie van het script, ik vind het in ieder geval mooi gedaan.
Hier vind je de code vrij te gebruiken, aan te passen en getest op fouten, die het niet bevat denk ik.

#!/bin/bash
# voorbeeldje van menu met zenity

temp=`mktemp -t temp.XXXXXX`
temp2=`mktemp -t temp.XXXXXX`

function diskspace {
df -k > $temp
zenity --text-info --title "Disk Space" --filename=$temp --width 750 \
--height 10
}

function whoison {
who > $temp
zenity --text-info --title "Logged in Users" --filename=$temp --width \ 500 --height 10
}

function memusage {
cat /proc/meminfo > $temp
zenity --text-info --title "Memory Usage" --filename=$temp --width 300 \ --height 500
}

function pathprint {
echo $PATH > $temp
zenity --text-info --title "Your PATH" --filename=$temp --width 750 \
--height 10
}

while [ 1 ]
do
zenity --list --radiolist --title "Kevin Toolkit" --column "Select" \
--column "Menu Item" FALSE "Display disk space" FALSE "Display users" \
FALSE  "Display memory usage" FALSE "Display PATH" FALSE "Exit" > $temp2
if [ $? -eq 1 ]
then
break
fi

selection=`cat $temp2`
case $selection in
"Display disk space")
diskspace ;;
"Display users")
whoison ;;
"Display memory usage")
memusage ;;
"Display PATH")
pathprint ;;
Exit)
break ;;
*)
zenity --info "Sorry, you did something wrong"
esac
done
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.

Offline eendje

  • Lid
Zenity part 2
« Reactie #1 Gepost op: 2008/07/26, 16:28:09 »
Ik krijg een foutmelding:

7: function: not found
11: Syntax error: "}" unexpected

Functie diskspace kan mijn computer niet vinden. Moet er nog wat geïnstalleerd worden?
Een dag niets geleerd is een dag niet geleefd!
Ik blog dus ik besta!
__________________________________________________________
Een vraag? Heb je al eens gekeken op: http://wiki.ubuntu-nl.org/FAQ?

Eider

  • Gast
Zenity part 2
« Reactie #2 Gepost op: 2008/07/26, 16:37:12 »
Ik krijg wel een menu'tje te zien met drie opties, alleen staat er geen tekst bij de derde.
Als ik ergens op klik krijg ik alleen heel de tijd de melding: "Alle updates zijn voltooid".

Wel leuk geschreven :).

Offline Kev

  • Lid
Zenity part 2
« Reactie #3 Gepost op: 2008/07/26, 16:59:51 »
Hmmm raar want het gebruikt enkel tools die standaard aanwezig zijn op een debian/Ubuntu systeem.
Misschien kun je eens zien of je zenity wel geïnstalleerd hebt.
Dit is normaal standaard aanwezig.
BTW dit script moet schrijfrechten hebben in de /tmp folder op je bestandssysteem omdat daar de tempfiles weggeschreven worden.
Je moet anders ook wel nog eens zien naar de spatiëring in je scriptbestand, want het op het forum neerzetten beschadigd de originele formattering van het script een beetje.
En dit werkt enkel met bash als de terminal.
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.

Offline Kev

  • Lid
Zenity part 2
« Reactie #4 Gepost op: 2008/07/26, 17:05:13 »
De code nog eens en nu zoals hij geformateerd was in het script.

#!/bin/bash
# voorbeeldje van menu met zenity

temp=`mktemp -t temp.XXXXXX`
temp2=`mktemp -t temp.XXXXXX`

function diskspace {
   df -k > $temp
   zenity --text-info --title "Disk Space" --filename=$temp --width 750 \
--height 10
}

function whoison {
   who > $temp
   zenity --text-info --title "Logged in Users" --filename=$temp --width \
500 --height 10
}

function memusage {
   cat /proc/meminfo > $temp
   zenity --text-info --title "Memory Usage" --filename=$temp --width 300 \ --height 500
}

function pathprint {
   echo $PATH > $temp
   zenity --text-info --title "Your PATH" --filename=$temp --width 750 \
--height 10
}

while [ 1 ]
do
zenity --list --radiolist --title "Kevin Toolkit" --column "Select" \
--column "Menu Item" FALSE "Display disk space" FALSE "Display users" \
FALSE "Display memory usage" FALSE "Display PATH" FALSE "Exit" > $temp2
if [ $? -eq 1 ]
then
   break
fi

selection=`cat $temp2`
case $selection in
"Display disk space")
   diskspace ;;
"Display users")
   whoison ;;
"Display memory usage")
   memusage ;;
"Display PATH")
   pathprint ;;
Exit)
   break ;;
*)
   zenity --info "Sorry, you did something wrong"
esac
done
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.

Eider

  • Gast
Zenity part 2
« Reactie #5 Gepost op: 2008/07/26, 17:18:13 »
Eerst sudo ervoor typen dan werkt het wel ;-).
Grappig gemaakt, alleen zou ik de menu's iets langer maken, nu moet je scrollen.

Offline Kev

  • Lid
Zenity part 2
« Reactie #6 Gepost op: 2008/07/26, 17:23:07 »
Raar bij mij werkt het zonder sudo.
BTW kan het zijn dat je misschien geen rechten hebt in de /tmp folder dat je sudo ervoor moet zetten.
Het langer maken kun je doen door zelf een --width en --height erbij te zetten voor de redirectie naar $temp2
best zou zijn gewoon --width 450 --height 20
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.

Offline eendje

  • Lid
Zenity part 2
« Reactie #7 Gepost op: 2008/07/26, 17:40:55 »
Het probleem bij mij was dat ik het script niet uitvoerbare rechten had gegeven. Het werkt nu prima
Een dag niets geleerd is een dag niet geleefd!
Ik blog dus ik besta!
__________________________________________________________
Een vraag? Heb je al eens gekeken op: http://wiki.ubuntu-nl.org/FAQ?

Offline Kev

  • Lid
Zenity part 2
« Reactie #8 Gepost op: 2008/07/26, 17:44:00 »
Citaat van: eendje
Het probleem bij mij was dat ik het script niet uitvoerbare rechten had gegeven. Het werkt nu prima
Ahh dacht ik het niet, ik heb met opzet enkel dingen gebruikt die standaard aanwezig horen te zijn op een Ubuntu systeem en die makkelijk los bij te installeren zijn op eender welk GNOME-based Linux systeem.
En het was ook een oefenscript om enkele aangeleerde zaken in praktijk te brengen omdat shellscripten een van de taken is die van mij verwacht worden op mijn stageplek.
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.