Ho scoperto ora zenity, un ottimo comando che permette di creare un interfaccia grafica per script bash. Stupendo, però mi impallo un po con la sintassi:
Questo è il solito sirm scritto normalmente per bash:
codice:
#!/bin/bash
###############################################
# #
# SIRM2 Script Install & Remove Manager 2.2 #
# #
###############################################
#Crea le cartelle necessarie allo script se non esistono (thanks to vortex87)
[ -d "$HOME/backup" ] || mkdir $HOME/backup
[ -d "$HOME/script" ] || mkdir $HOME/script
# Verifica che l'utente abbia permessi di root
ROOT_UID=0
if [ "$UID" != "$ROOT_UID" ]
then
echo "Devi essere root per eseguire questo script."
exit
fi
#Qui sotto le funzioni di sirm2
usage () {
echo "Questo è l'help di sirm2:
Una volta avviato, segui le istruzioni per eseguire le operzioni richieste"
exit 1
}
#Qui sotto l'utilizzo delle funzioni
while [[ "$1" != "" ]]; do
case "$1" in
"-h" ) usage ;;
"--help" ) usage ;;
esac
shift
done
#Qui sotto sirm e le sue utilità
echo "SIRM 2.0. Script Install & Remove Manager versione 2.0.3"
echo "Cosa vuoi fare?"
echo "1) Installare uno script (deve essre in $HOME/script/)"
echo "2) Rimouvere uno script"
echo "3) Fare il backup di uno script in $HOME/backup/ "
echo "4) Ripristinare uno script salvato in $HOME/backup/ "
echo "5) Apri uno sript nella cartella $HOME/script/ con un editor di testo"
echo "6) Uscire"
echo "Digita il numero corrispondente all'operazione"
read scelta
case $scelta in
1)
echo "Digita il nome dello script da installare"
read elencosript
chmod +x $HOME/script/$elencosript
cp $HOME/script/$elencosript /usr/local/bin/
echo "Installati gli script sul tuo computer"
echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"
;;
2)
echo "Digita il nome dello script da rimuovere"
read elencosript
rm /usr/local/bin/$elencosript
echo "Rimossi gli script sul tuo computer"
echo "Fine"
;;
3)
echo "Digita il nome dello script (che deve essere in $HOME/script/ )"
read miofile
cp $HOME/script/$miofile $HOME/backup/
echo "Script salvato"
;;
4)
echo "Digita il nome dello script di backup che vuoi ripristinare"
read script
cp $HOME/backup/$script /usr/local/bin/
echo "Script ripristinato"
;;
5)
echo "Digita il nome dello script che vuoi aprire"
read script
echo "Ora digita il nome del tuo editor di testo predefinito (per esempio nano, gedit, kwrite)"
read editor
if [[ $editor == "" ]]
then
nano $HOME/script/$script
exit
fi
$editor $HOME/script/$script &
exit
;;
6)
echo "Ciao"
exit
;;
*)
echo "input non valido"
esac
e fin qui tutto ok, ora ecco come sto provando a trasformarlo per passare tutti i comandi a zenity:
codice:
#!/bin/bash
scelta=""
function scelta(){
scelta=$(zenity --width=500 --entry --text "
SIRM 2.0. Script Install & Remove Manager versione 2.0.3
Cosa vuoi fare?
1) Installare uno script (deve essre in $HOME/script/)
2) Rimouvere uno script
3) Fare il backup di uno script in $HOME/backup/
4) Ripristinare uno script salvato in $HOME/backup/
5) Apri uno sript nella cartella $HOME/script/ con un editor di testo
6) Uscire
Digita il numero corrispondente all'operazione
" --title "Sirm2 GUI"
)
return
}
function installa(){
installa=$(zenity --width=500 --entry --text "
Digita il nome dello script da installare
" --title "Scelta script")
return
}
scelta
if [[ $(echo $scelta | grep "1") ]];
then
installa ;
fi
il problema è che non mi viene in mente come far fare a zenity gli altri comandi dopo la scelta del nome dello script da installare. Qualcuno mi sa aiutare?