Newsgroup: it.comp.os.linux.iniziare
Titolo: [sh] comportamento strano

Ciao, ho notato un comportamento strano della mia bash:
$ pippo = pollo
bash: pippo: command not found
$ pippo = "pollo"
bash: pippo: command not found
Cio` capita anche per uno script che stavo facendo (non ridete, so
programmare in perl e c, ma non mi sono mai cimentato negli script bash):
<script>
#!/bin/sh
 
NOME2 = `echo $1 | sed 's/.pdf$/.PDF/'`
 
echo $NOME2
 
cp $1 $NOME2
</script>
$ ./script.sh prova.pdf
./script.sh: line 3: NOME2: command not found
 
cp: missing destination file
Try `cp --help' for more information.
Questo mi capita sia su mandrake (che uso come desktop) sia sulla debian
(che uso come server, una Woody), ho fatto delle prove con un mio amico e
da lui funziona (abbiamo usato MacOSX, FreeBSD, Debian). Ho pensato che
fosse colpa della bash, o delle sue impostazioni, ho quindi caricato sh,
ma ho notato che alla fine, sulla mia mdk, sh, non e` altro che un link
alla bash. Da quello che mi ricordo "pippo = pollo" e` un'espressione
accettabile dalla bash, dovrebbe attribuire il valore "pollo" a "pippo",
come mai mi da` problemi?
Grazie, Godmar.
-- 
I will build myself a copper tower
With four ways out and no way in
But mine the glory, mine the power
(So I chose AmigaOS and GNU/Linux)

 bash: pippo: command not found
io direi che se fai pippo="pollo" funziona :)
pippo = $something ti cerca il comando pippo e gli passa i due
parametri (= e "pollo") pippo="pollo" risolve come di consueto
l'assegnazione. 
ciau!
-- 
  .''`.  | 17. "Sport che si pratica allungando le braccia"."Scippo".
 : :'  : | [la "nimmistica" di Claudio Batta - Zelig]
 `. `'`  |
   `-    |

 bash: pippo: command not found
tra $ e variabile non ci va lo spazio. e quando assegni le variabili non
ci va il dollaro, solo quando le richiami.
ciao
-- 
Davanti a Dio non ha importanza il successo umano, ma l'amore che si
mette nel lavoro. Se qualcuno ha Dio come cliente, lo tenga presente.--
http://www.misterfloppy.it

 ci va il dollaro, solo quando le richiami.
ehmm...immagino che quel $ sia parte del prompt :P
-- 
  .''`.  | Riflettere è considerevolmente laborioso; ecco perché molta
 : :'  : | gente preferisce giudicare. [Ortega y Gasset]
 `. `'`  |
   `-    |

 ciao
Ciao, Godmar.


 ciau!
Ciao, Godmar.


 found". Non riesco a capire come mai.
Perché la shell vede pippo come comando con argomenti = e pollo. Scrivi
l'istruzione senza spazi:
$ pippo=pollo
Vedrai che funziona.



Infatti, dopo un po' ci sono arrivato, non ho mai dato importanza
agli spazi, adesso che lo so...
Comunque adesso funziona.
Grazie a tutti, Godmar.


 found". Non riesco a capire come mai.
La sintassi generale e':
nome1=valore1 nome2=valore2 nome3=valore3 ... comando arg1 arg2 arg3 ...
Gli spazi servono per separare fra lore le varie istruzioni di
assegnamento e il comando finale. Se il comando finale e' presente, le
variabili assegnate diventano variabili di ambiente per il comando stesso
e perdono il valore una volta che il comando e' terminato.
Detta cosi' mi sembra si possa capire un po' meglio l'arcana sintassi
di sh e bash rispetto agli altri linguaggi di programmazione.
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it