Newsgroup: it.comp.os.linux.software
Titolo: problema shell

Ciao sono Nico.
Nella ditta dove lavoro stiamo cercando di migrare il nostro applicativo
da Sco-Unix
a Linux.
IL mio problema e' legato alle variabili.
Se faccio a mano da riga di comando, per esempio, 
asso=/usr1/bin
export $asso
il tutto funziona, ma se lo inserisco all'interno di uno script sembra
che venga ignorato
( lo script viene pero' eseguito).E se faccio echo $asso ho come
risposta una riga vuota.
Sia da utente root che da user.
Ho una Mandrake 7.2.
Se qualcuno potrebbe aiutarmi !!!
Nico

export $asso
la shell interattiva AFAIK interpreta le variabili in maniera
differente.
In uno script metti:
asso=/usr1/bin
export asso
oppure meglio:
export asso=/usr1/bin
ciao.
-- 
Hi! I'm Norton Antivirus. Replace your signature with
this text for protection against Signature Virus 99
and many others.
Maurizio - Tannoiser - Lemmo
STIGE Srl Servizi Informatici
Founder Member of ERLUG (Emilia Romagna Linux User Group)
http://erlug.linux.it

 
Sono ancora Nico.
Scusa ma Ho fatto un errore di battitura nel post.
In effetti nel mio script c'e'
asso=/usr1/bin
export asso.
Ho provato anche
export asso=/usr1/bin
ma quando digito echo $asso ho sempre in risposta una riga vuota.
Uso come shell la bash e tutti gli altri comandi dello script vengono
eseguiti.
Nico

ma quando digito echo $asso ho sempre in risposta una riga vuota.
prova a mettere il contenuto della variabile tra virgolette.
Ciao


che venga ignorato
Perche'.. se lo script si chiama set-asso, guarda:
[~] rez_5$: ./set-asso
te lo esegue un'altra shell che poi muore. Invece devi dare:
[~] rez_5$: . set-asso
oppure, che vale anche se non e` bash:
[~] rez_5$: source set-asso
cosi` va, e non hai bisogno neppure di dare permesso di esecuzione al
file, basta l'accesso in lettura.
-- 
Ci sentiamo  |  Remigio Zedda  || Attenzione! campo "From:" alterato
ciao Remigio |                 ||==> E-mail: 
remi...@tiscalinet.it
-------------|      ..si` d'accordo.. ma con la Deb e` un'altra cosa!
/* Linux 2.2.17 su Debian GNU/Linux 2.2 Potato */

 ma quando digito echo $asso ho sempre in risposta una riga vuota. Uso
Fammi capire. Tu esegui lo script con export. Alla fine dello script
scrivi a mano nella shell "echo $asso"?
Allora non puo` funzionare. Per eseguire gli script la shell forka
un'altra shell, quindi al termine dello script le variabili vanno perse.
Per farle rimanere devi richiamare lo script in modo particolare, con il
comando source o . (punto). man bash
Bye.

eseguiti.
Questo succede perchè quando lanci lo script la bash lo esegue dentro una 
nuova shell e le variabili che crei sono locali a quella shell. Per 
eseguire lo script all'interno della shell corrente devi usare il "source". 
Ad esempio se il tuo script si chiama prova.sh:
source prova.sh
Per maggiori informazione "man bash"
-- 
"It's an electronic jungle out there, and evolution 
is the name of the game" - Linus Torvalds

 che venga ignorato
Devi lanciare lo script con la sintassi . <nomefile> ( okkio al punto )
[ghigo@therra /tmp]$ echo "pippo=5" >prova
[ghigo@therra /tmp]$ chmod +x prova
[ghigo@therra /tmp]$ echo $pippo
 
[ghigo@therra /tmp]$ ./prova
[ghigo@therra /tmp]$ echo $pippo
 
[ghigo@therra /tmp]$ . ./prova
[ghigo@therra /tmp]$ echo $pippo
5
[ghigo@therra /tmp]$

export asso
ciao,
ppp
