Newsgroup: it.comp.os.linux.iniziare
Titolo: Non capisco la grammatica della shell

Ho fatto uno script, sulla falsariga di un esempio presente nel 
Bash Script HOWTO, che mi evita di digitare lunghi comandi per alcune cose
che faccio spesso.
E' il seguente:
****************************
 #!/bin/bash
	clear
           OPTIONS="Vuoi_sentire_un_po'_di_musica?
Preferisci_leggere_le_news?"
           select opt in $OPTIONS; do
               if [ "$opt" = "Vuoi_sentire_un_po'_di_musica?" ]; then
                cd /mnt/win_e/programmi/napster/Music/
	    mpg123 -z *.*
	         exit
               elif [ "$opt" = "Preferisci_leggere_le_news?" ]; then
                 wine /mnt/win_e/programmi/Agent/agent &
	        exit
               else
                clear
                echo bad option
               fi
           done
************************
Ora la mia curiosità è la seguente: nella visualizzazione delle opzioni
vorrei mettere uno spazio al posto dell'underscore. Come si fa?
Al posto di _ ho provato a mettere le seguenti stringhe:
1. ' '
questa senza risultati visibili; venivano visualizzati gli apici;
2. " "
Qui mi dava errore, dicendo che non conosceva *sentire* (la prima parola che
trovava) come comando.
3- \    (cioè slashspazio)
Ma mi divideva le opzioni una per parola, visualizzandomi anche lo slash.
Come faccio a inserire lo spazio?
P.S. nella penultima riga dello script c'e la stringa *fi*. Non ho trovato
cosa significa.
P.PS
. Danno fastidio a qualcuno le lettere accentate che uso o tutti i
newsreader ormai le accettano?
Ciao.
-- 
Antonio  @=D
 

 ************************
prova a correggere cosi`:
#!/bin/bash
clear
select opt in "Vuoi sentire un po' di musica?" "Preferisci leggere le news?"
do
	if [ "$opt" = "Vuoi sentire un po' di musica?" ]; then
		cd /mnt/win_e/programmi/napster/Music/
		mpg123 -z *.*
		exit
	elif [ "$opt" = "Preferisci leggere le news?" ]; then
		wine /mnt/win_e/programmi/Agent/agent &
		exit
	else
		clear
		echo bad option
	fi
done
-- 
Mario Michele Macaluso     -o)  | Tuesday is the Wednesday of the rest of    
m.macaluso .@. 
libero.it
   /\\  | your life.                                 
                          _\\_v |                                            
                                |                                            
Kernel 2.2.14-5.0 on a i586     |                                            
(All addresses in headers are fake. Only one dot in signature.)

 cosa significa.
E' una perversione.
fi significa endif (e' if scritto a rovescio)
simile a:
case $variabile in
    ...
    ...
esac
esac = endcase (case scritto a rovescio).
Solo perche' sono piu' corti da scrivere.

prova a correggere cosi`:
Prova? _Fai_ cosě mi dovevi dire, perche' e' perfetto! Proprio cio' che
volevo fare!. ;-)
Grazie.
-- 
Antonio  @=D
 

 Grazie.
Ehm, la fattura a chi la mando? ;-)
si poteva fare di meglio:
select opt in "aa aa" "bbb BB" [ ".... " ]
case $opt in
	"aa aa" ) echo scelta 1 ;;
	"bbb BB" ) echo scleta 2 ;;
	...
	"???" ) echo scelat N ;;
	*) echo Riprova sarai piu fortunato ;;
esac
-- 
Mario Michele Macaluso     -o)  | Understanding is always the understanding  
m.macaluso .@. 
libero.it
   /\\  | of a smaller problem in relation to a      
                          _\\_v | bigger problem.   -- P.D. Ouspensky        


esac
Qui andiamo su troppo complicato.  :-)
Piuttosto, c'è modo di non dover battere invio, ma fargli riconoscere il
tasto che premo?
Ciao.
-- 
Antonio  @=D
 

 Ciao.
ciriciao
-- 
Mario Michele Macaluso     -o)  | "I went into a general store, and they     
m.macaluso .@. 
libero.it
   /\\  | wouldn't sell me anything specific".   --  
                          _\\_v | Steven Wright                              


complicato.
Ma sapere il c aiuta (mi pare)?
Grazie delle dritte & Ciao.
-- 
Antonio  @=D
 

 Grazie delle dritte & Ciao.
di nulla, pero` quando rispondi per mail usa almeno un indirizzo valido,
senno come faccio a verificare se il mio programma di spam funziona?
Siiii, hai capito benissimo un programma per fare spam e non uno antispam;
senno uno come si diverte alle 4 di mattina? ;-0
ciao
-- 
Mario Michele Macaluso     -o)  | All progress is based upon a universal     
m.macaluso .@. 
libero.it
   /\\  | innate desire of every organism to live    
                          _\\_v | beyond its income.   -- Samuel Butler,     
                                | "Notebooks"                                


 il c ti puo` servire (forse) se vorrai usare il perl.
Oddio, su questa affermazione ci sarebbe da pensare...
Non so quanto aiuto sapere il C quando in Perl si possono fare 'ste
cose:
#v+
foreach (keys %config_hash)
  {
    chomp ($answer = <STDIN>);
    $conf_hash{$_} = $answer unless ($answer eq "");
  }
#v-
Certo, forse il punto e virgola ricorda il C, ma anche il Pascal. ;-)
Bye,
 Emmanuele.
-- 
Emmanuele Bassi         |             [ 
http://digilander.iol.it/ebassi/
 ]
emmanue...@iol.it
  |
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 
-- 
Mario Michele Macaluso     -o)  | One of the disadvantages of having children
m.macaluso .@. 
libero.it
   /\\  | is that they eventually get old enough to  
                          _\\_v | give you presents they make at school.   --
                                | Robert Byrne                               


 idiote e niente piu`, tutto il resto si chiama libreria.[*]
Rileggi  meglio il  mio post:  quanto puo`  servire conoscere  il C  per
scrivere in Perl?
