[Risolto]Problema con Zenity
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Problema con Zenity
NicoCale, il codice che hai postato è peggio di un geroglifico.
È indentato abbastanza male.
Quindi, ripeto la domanda... tu che comportamento vuoi ottenere?
Si apre la finestra di zenity... e poi?
È indentato abbastanza male.
Quindi, ripeto la domanda... tu che comportamento vuoi ottenere?
Si apre la finestra di zenity... e poi?
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: Problema con Zenity
c'è l'assegnazione e anche l'echo , il controllo lo devi fare sul comando zenity
edit: scusa Vae non avevo visto il tuo intervento. Giusto.
Resto solo in "ascolto"
edit: scusa Vae non avevo visto il tuo intervento. Giusto.
Resto solo in "ascolto"
Salva l'Ucraina! 
-
NicoCale
- Prode Principiante
- Messaggi: 16
- Iscrizione: domenica 18 maggio 2014, 11:12
- Desktop: ubuntu
- Distribuzione: Ubuntu14.04 x86_64
Re: Problema con Zenity
ahahahahahah
scusa, solo che in fase di "creazione" ho corretto il codice così tante volte che ho tralasciato un po l'indentazione...
Si apre una finestra zenity --entry , nella quale l'utente deve mettere l'indirizzo di una cartella(è necessarrio per il funzionamento del programma), fatto ciò , una serie di if verifica :
1) se la cartella esiste , in caso contrario manda a video un errore , dopo aver mandato questa finestra di errore , ripresenta la finestra zenity --entry
2) se è stato premuto il tasto "ok" per procedere ma senza aver inserito un indirizzo, ovvero lasciando lo spazio di inserimento vuoto, in questo caso visualizza un altro errore che differisce dal primo e dopo aver fatto visualizzare l'errore , ripresenta la finestra zenity --entry con un percorso di default.
Ultima cosa , il programma deve terminare se si preme il tasto annulla.
Spero di essere stato un po più chiaro, non vorrei sembrasse che stia cercando di far fare lo script a voi , ma veramente, non capisco.
Si apre una finestra zenity --entry , nella quale l'utente deve mettere l'indirizzo di una cartella(è necessarrio per il funzionamento del programma), fatto ciò , una serie di if verifica :
1) se la cartella esiste , in caso contrario manda a video un errore , dopo aver mandato questa finestra di errore , ripresenta la finestra zenity --entry
2) se è stato premuto il tasto "ok" per procedere ma senza aver inserito un indirizzo, ovvero lasciando lo spazio di inserimento vuoto, in questo caso visualizza un altro errore che differisce dal primo e dopo aver fatto visualizzare l'errore , ripresenta la finestra zenity --entry con un percorso di default.
Ultima cosa , il programma deve terminare se si preme il tasto annulla.
Spero di essere stato un po più chiaro, non vorrei sembrasse che stia cercando di far fare lo script a voi , ma veramente, non capisco.
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Problema con Zenity
Non c'è problema se ti si aiuta a capire il codice, ora che s'è capito che ci stai lavorando 
Detto questo, secondo me il comportamento del programma è "asfissiante"... nel senso che se preme Annulla... non puoi mica entrare in un loop in cui continui a mazzetta a chiedergli di inserire qualcosa.
Detto questo, ti faccio un esempio di come si può impostare un loop per asfissiare l'utente ad inserire l'indirizzo della cartella
Prova a far girare questo programma.
Se l'utente non fa le cose per bene... il programma imperterrito lo massacra di nuovo con richieste a loop... e per interrompere il programma devi chiudere la shell, o "killarlo" con ctrl+c dentro la shell che l'ha lanciato.
Sei sicuro che desideri questo comportamento?
Nel senso che il tasto Annulla serve per annullare, non per entrare in un incubo
Detto questo, secondo me il comportamento del programma è "asfissiante"... nel senso che se preme Annulla... non puoi mica entrare in un loop in cui continui a mazzetta a chiedergli di inserire qualcosa.
Detto questo, ti faccio un esempio di come si può impostare un loop per asfissiare l'utente ad inserire l'indirizzo della cartella
Codice: Seleziona tutto
#! /bin/bash
while true; do
foo=`zenity --entry`
if [[ $? -ne 0 ]]; then
#ha premuto annulla
continue
elif [[ -z "$foo" ]]; then
#ha premuto ok ma senza scrivere nulla
continue
else
#ha fatto le cose per bene
echo "Bravo hai scelto: $foo"
break
fi
doneSe l'utente non fa le cose per bene... il programma imperterrito lo massacra di nuovo con richieste a loop... e per interrompere il programma devi chiudere la shell, o "killarlo" con ctrl+c dentro la shell che l'ha lanciato.
Sei sicuro che desideri questo comportamento?
Nel senso che il tasto Annulla serve per annullare, non per entrare in un incubo
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Problema con Zenity
p.s.:
No, aspe'... mi sono reso conto che tu vuoi il comportamento "normale" se si preme annulla.
La struttura del ciclo while ora la hai, dovresti poter risolvere aggiungendo quello che ti serve al posto dei vari continue.
Se hai ancora difficoltà, invece, fallo pure presente che ti modifico il codice avvicinandolo a quello che ti serve
No, aspe'... mi sono reso conto che tu vuoi il comportamento "normale" se si preme annulla.
La struttura del ciclo while ora la hai, dovresti poter risolvere aggiungendo quello che ti serve al posto dei vari continue.
Se hai ancora difficoltà, invece, fallo pure presente che ti modifico il codice avvicinandolo a quello che ti serve
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
-
NicoCale
- Prode Principiante
- Messaggi: 16
- Iscrizione: domenica 18 maggio 2014, 11:12
- Desktop: ubuntu
- Distribuzione: Ubuntu14.04 x86_64
Re: Problema con Zenity
Grazie mille, ora ho capito, mi è stato comunque utile il ciclo, ora ho veramente risolto... finalmente ahahah

- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: [Risolto]Problema con Zenity
Posta il codice, se vuoi, che gli si butta un occhio (se è indentato bene
)
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
-
NicoCale
- Prode Principiante
- Messaggi: 16
- Iscrizione: domenica 18 maggio 2014, 11:12
- Desktop: ubuntu
- Distribuzione: Ubuntu14.04 x86_64
Re: [Risolto]Problema con Zenity
Eccolo 
non ho idea del perchè l'elif, l'else e il fi me li faccia spostati ...
non ho idea del perchè l'elif, l'else e il fi me li faccia spostati ...
Codice: Seleziona tutto
#! /bin/bash
#Mette nella variabille "sorgente" la path della cartella di default nella quale si trovano i file da copiare.
sorgente="/home/LDAPUsers/$USER/Documenti/"
#Ciclo di verifica errori
while true
do
#Mette nella variabille "sorgente" la path della cartella nella quale si trovano i file da copiare, indicata dall'utente attraverso la finestra di dialogo.
sorgente=$(zenity --entry \
--title="Sorgente file" \
--text="Inserire Sorgente(indirizzo)\nSelezionare la cartella contenente i file che vogliono essere salvati\!" \
--width=600 \
--height=250 \
--entry-text="$sorgente")
#Salva stato operazione di zenity
v="$?"
#Controllo: esistenza cartella sorgente e manda a video un errore in caso essa non esista.
if [ ! -e $sorgente ] && [ $v != 1 ]
then
zenity --error --text="La cartella sorgente inserita non è raggiungibile o insesistente\n\n RICONTROLLARE INDIRIZZO\!" --width=600 --height=250
continue
#Controllo: se non viene inserito nessun indirizzo e l'utente preme ok, viene visualizzato un errore
elif [ "$sorgente" = "" ] && [ $v = 0 ]
then
zenity --error --text="Per continuare l'operazione è necessario inserire l'indirizzo della cartella desiderata\!" --width=600 --height=250
sorgente="/home/LDAPUsers/$USER/Documenti/"
continue
else
break
fi
done
#Controllo: se è stato premuto annulla , non si esegue il programma.
if [ $v != 1 ]
then
- UbuNuovo
- Imperturbabile Insigne

- Messaggi: 4457
- Iscrizione: sabato 12 dicembre 2009, 20:58
- Desktop: Mate
- Distribuzione: Ubuntu Mate 22.04.1 LTS
- Sesso: Maschile
- Contatti:
Re: [Risolto]Problema con Zenity
Mi sono accorto ora che siete andati avanti, (ho avuto da fare e non mi sono arrivate le notifiche).
Per conto mio sarebbe più semplice inserire i vari "dialog" di zenity in funzioni e con un semplice controllo su stato di uscita e di presenza di valori nella variabile, si può uscire o riproporre la finestra di dialogo (come si vedenell'esempio che avevo postato.
in pratica:
Per conto mio sarebbe più semplice inserire i vari "dialog" di zenity in funzioni e con un semplice controllo su stato di uscita e di presenza di valori nella variabile, si può uscire o riproporre la finestra di dialogo (come si vedenell'esempio che avevo postato.
in pratica:
Codice: Seleziona tutto
function foo (){
scelte=$(zenity...codice zenity)
[ $? -ne 0 ] && exit 1 ; [ -z "$scelte" ] && foo # esce se si preme "Annulla" o si chiude la finestra e ripresenta la finestra se i valori non sono stati scelti/inseriti/selezionati
}
foo # chiamata normaleSalva l'Ucraina! 
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti