Newsgroup: it.comp.os.linux.iniziare
Titolo: Zenity

Ciao a tutti,
ho questo script zenity che non riesco a far funzionare.
Dove sbaglio?
Nella finestra di dialogo text info non mi restituisce nessun valore :-(
Mi potete aiutare?
Grazie
 
 
 
 
#!/bin/bash
 
FILE=`zenity --file-selection --title="Seleziona il file"`
 
 
selez=$(zenity  --list  --text "Che tipo di formattazione desideri?" 
--checklist  --column "Selezione" --column "Opzioni" TRUE "Inserimento$
 
$selez = cut --output-delimiter=: -b"1-2 3-4 5-6 7-8 9-10 11-12" > 
$risultato_ok.txt
$selez = cut --output-delimiter=. -b"1-4 5-8 9-12" > $risultato_ok_2.tx
 
cat $FILE | $selez
 
 
zenity --text-info --filename=$risultato_ok.txt
 
exit 0

 Grazie
 
errata corrige.
Questo è quello corretto:
 
#!/bin/bash
 
FILE=`zenity --file-selection --title="Seleziona il file"`
 
 
selez=$(zenity  --list  --text "Che tipo di formattazione desideri?" \
--checklist  --column "Selezione" \
--column "Opzioni" TRUE "Inserimento del sibolo :" TRUE "Inserimento del 
simbolo .")


 $risultato_ok.txt
 
Che è questo ?
 
Credo che volessi intendere $selez=$(cut cut --output-delimiter=: -b"1-2 
3-4 5-6 7-8 9-10 11-12")
 
Stessa cosa anche per l'altro cut
 
 

 Stessa cosa anche per l'altro cut
 
Grazie per la tua gentile risposta.
Non funziona ancora :-(
Nello script dopo aver caricato il file da gestire devo
indicare che tipo di formattazione devo dare, restituendomi il file in
una finestra.
Mi puoi dare qualche suggerimento?
Grazie
 
 
FILE=`zenity --file-selection --title="Seleziona il file"`
 
 
selez=$(zenity  --list  --text "Che tipo di formattazione desideri?" \
--checklist  --column "Selezione" \
--column "Opzioni" TRUE "Inserimento del sibolo :" TRUE "Inserimento del 
simbolo .")
 
pippo = $(cut --output-delimiter=: -b"1-2 3-4 5-6 7-8 9-10 11-12") > 
$risultato_ok.txt
pippo =$( cut --output-delimiter=. -b"1-4 5-8 9-12") > $risultato_ok_2.tx
 
cat $FILE | $pippo


Il 19/05/2015 02:48, Smith ha scritto:

In selez hai una riga tipo:
Inserimento del sibolo :|Inserimento del simbolo .
 
se selezionati tutti e due
 
ora dipende cosa devi fare
 

 ora dipende cosa devi fare
 
innanziutto grazie.
 
Vorrei che selezionando una delle due opzioni mi eseguisse il comando 
scelto.
 
Grazie ancora


E se selezionate tutte e due le opzioni che deve fare ?
 

 E se selezionate tutte e due le opzioni che deve fare ?
 
Niente.
Le posso mettere a "FALSE" giusto?


andrebbero  fatte mutualmente esclusive, ma non so se in zenit si puo fare
 
comunque avendo nella variabile selez una riga tipo 'Inserimento del 
sibolo :' e supponendo che : sia il selettore del comando basta una cosa 
cosi:
 
 
if echo "$selez" | grep ":" > /dev/null
then
	<comando>
fi
 
e cosi per le altre selezioni
 

 e cosi per le altre selezioni
 
Ho provato così ma mi restiruisce un errore.
 
 
=========================================================================
prova1_zenity.sh: riga 19: EOF non atteso durante la ricerca di """
prova1_zenity.sh: riga 24: errore di sintassi: EOF non atteso
=========================================================================
 
 
1
2  #!/bin/bash
3  clear
4  FILE=`zenity --file-selection --title="Seleziona il file"`
5
6
7  selez=$(zenity  --list  --text "Che tipo di formattazione desideri?" \
8  --checklist  --column "Selezione" \
9  --column "Opzioni" TRUE "Inserimento del sibolo :" TRUE "Inserimento 
del simbolo .")
10
11
12  if echo "$selez" | grep ":" > /dev/null
13  then
14    cut --output-delimiter=: -b"1-2 3-4 5-6 7-8 9-10 11-12 > 
$risultato_ok.txt
15  fi
16
17  if echo "$selez" | grep "." > /dev/null
18  then
19    cut --output-delimiter=. -b"1-4 5-8 9-12" > $risultato_ok.txt
20  fi
21
22  exit 0
23
 
 
 
 


 
ai due comandi cut è mancante il file di input
 
 


 
Ho risolto :-)
Grazie
 
Mi mancherebbe l'ultima parte, cioè indirizzare lo Stdout del comando 
visualizzandolo con zenity alla riga 21.
Come devo fare?
 
 
      1	#!/bin/bash
      2	clear
      3	FILE=$(zenity --file-selection --title="Seleziona il file")
      4	
      5	selez=$(zenity  --list  --text "Che tipo di formattazione 
desideri?" \
      6	--checklist  --column "Selezione" \
      7	--column "Opzioni" TRUE "Inserimento del sibolo :" TRUE 
"Inserimento del simbolo .")
      8	
      9	
     10	if echo "$selez" | grep ":" > /dev/null
     11	then
     12		cat $FILE | cut --output-delimiter=: -b"1-2 3-4 5-6 7-8 9-10 
11-12"
     13	
     14	fi	
     15	
     16	if echo "$selez" | grep "\." > /dev/null
     17	then
     18		cat $FILE | cut --output-delimiter=. -b"1-4 5-8 9-12"
     19	fi
     20	
     21	zenity --text-info --filename= ?????????????????????????????
     22	
     23	exit 0
 


	(
 
 >      10    if echo "$selez" | grep ":" > /dev/null
 >      11    then
 >      12        cat $FILE | cut --output-delimiter=: -b"1-2 3-4 5-6 7-8
 > 9-10 11-12"
 >      13
 >      14    fi
 >      15
 >      16    if echo "$selez" | grep "\." > /dev/null
 >      17    then
 >      18        cat $FILE | cut --output-delimiter=. -b"1-4 5-8 9-12"
 >      19    fi
 
	) | zenity --filename=--
 
 
ammesso che zenity prenda -- come stdin (oppure se si omette --filename 
dovrebbe leggere da stdin)
 
 
se non è cosi allora:
 
(
  <comandi>
) | cat > tempfile
 
zenity --filename=tempfile
rm tempfile
 
 
 
 
 
 

 rm tempfile
 
Ok risolto definitivamente.
Grazie 1000 enoquick ;-)
 
Ecco,per chi fosse interessato,lo script che inserisce il simbolo ":" e 
"." in un mac address  :
 
=====================================================================
  #!/bin/bash
clear
FILE=$(zenity --file-selection --title="Seleziona il file")
 
selez=$(zenity  --list  --text "Che tipo di formattazione desideri?" \
--checklist  --column "Selezione" \
--column "Opzioni" TRUE "Inserimento del sibolo :" TRUE "Inserimento del 
simbolo .")
 
 
if echo "$selez" | grep ":" > /dev/null
then
         cat $FILE | cut --output-delimiter=: -b"1-2 3-4 5-6 7-8 9-10 
11-12" | cat > tempfile
 
fi
 
if echo "$selez" | grep "\." > /dev/null
then
         cat $FILE | cut --output-delimiter=. -b"1-4 5-8 9-12" | cat > 
tempfile
fi
 
zenity --text-info --filename=tempfile
 
sudo rm tempfile
 
exit 0
====================================================================


Ti va bene perchè le due if sono (o si spera che lo siano) mutualmente 
esclusive
se non lo fossero solo il valore dell' ultima if valutata a vero si 
avrebbe il risultato in tempfile
 
prova anche con:
 
(
   if ..
      cut .. # senza il > tempfile finale
   if ..
      cut .. # senza il > tempfile finale
) | zenity --text-info
 
 
dovrebbe funzionare e si risparmia un temporaneo
Dico dovrebbe in quanto non ho provato
 

 Dico dovrebbe in quanto non ho provato
 
Si`, ho provato adesso e funziona.
 
#!/bin/bash
delimiter[0]=":"
delimiter[1]="."
FILE=$(zenity --file-selection\
	      --title="Seleziona il file")
selez=$(zenity --list\
	       --text "Scegliere il delimitatore"\
	       --column "Selezione"\
	       ${delimiter[@]})
case "$selez" in
    ":")
	cat $FILE |\
	    cut --output-delimiter=":"\
		-b "1-2 3-4 5-6 7-8 9-10 11-12" |\
	    zenity --text-info
	;;
    ".")
	cat $FILE |\
	    cut --output-delimiter="."\
		-b "1-4 5-8 9-12" |\
	    zenity --text-info
	;;
esac
exit 0
 
 
 
 
 
 


Cosi risparmi qualche duplicazione di codice:
 
cat $FILE |  case "$selez" in
       ":")
	cut --output-delimiter=":"\
  		-b "1-2 3-4 5-6 7-8 9-10 11-12"
        ...
esac | zenity --text-info
 
ma va bene anche cosi
 
 

 ma va bene anche cosi
 
Si` ma cosi` va meglio :-)