Molino Alimonti S.p.A.
Fabio La Farcioli
Ufficio EDP
66026 Ortona (CH) - Italy
Phone: +39.(0)85.90510315 - Fax: +39(0)85.9032378
www.molinoalimonti.com - email: fabio.la...@molinoalimonti.com
"Ai sensi del Codice della Privacy, D.Lgs.n.196/2003, il contenuto di questa mail è coperto dal vincolo di riservatezza. Qualsiasi soggetto diverso dal destinatario è tenuto ad avvertire il mittente e ad astenersi inoltre, dall'utilizzo e comunque dal divulgare in tutto o in parte il suo contenuto."
This e-mail is confidential and may contain privileged information. If you are not the addressee or if you have received the e-mail in error, it may be unlawful for you to read, copy, distribute, disclose or otherwise use the information which it contains. Under these circumstances, please notify us immediately by returning this mail to in...@molinoalimonti.com and deleting this e-mail from your system.
Il programma in bash incrementa il suo valore di A, non il valore che
A ha nell'ambiente. Se vuoi cambiare il valore di A devi fare:
export A=`tuo_script.sh`
--
Federico Di Gregorio http://people.initd.org/fog
Debian GNU/Linux Developer f...@debian.org
INIT.D Developer f...@initd.org
Having paid our respects to the dead (Taligent), nearly dead
(Objective-C) and legendary (Symbolics), let's start digging
into the features that make Python a great language for mix-in
programming. -- Chuck Esterbrook
Il giorno mer, 18/04/2007 alle 08.51 +0200, Fabio La Farcioli ha scritto:-- Buongiorno a tutti, ho piccolo problema con uno script bash....e non riesco a capire dove sbaglio. La parte di script che mi da problemi è questa: ---------------------------------- #!/bin/bash A=$(( $A + 1 )) echo $A ---------------------------------- Praticamente io avrei bisogno di incrementare il valore di A, a cui ho assegnato il valore 1 tramite "export A=1" direttamente dalla shell Però a ogni interazione dello script il valore di $A rimane sempre 1. Dove sbaglio?? Scusate forse per la banalità....ma è da poco che ho a che fare con Shell ScriptingIl programma in bash incrementa il suo valore di A, non il valore che A ha nell'ambiente. Se vuoi cambiare il valore di A devi fare: export A=`tuo_script.sh`
> Ho provato cosi...ma se provo a farmi restituire il valore di A con
> "env"...il valore è sempre 0! Mentre come output dello script ricevo
> sempre 1...
Te lo dico per esperienza personale :): spiega esattamente cosa vuoi
fare; chi chiama chi, chi cambia cosa, chi deve vedere una certa
variabile...
prova con
#!/bin/bash
A=$(($A+1))
echo $A
senza spazi
dovrebbe funzionare!
Ciao!
--
Neon
Powered by debian Sid
> dovrei riuscire ad assegnarli quel valore ad A nell'ambiente ??
>
> Ho provato cosi...ma se provo a farmi restituire il valore di A
> con "env"...il valore è sempre 0! Mentre come output dello script
> ricevo sempre 1...
Credo che sia perchè lo script è invocata in una subshell, e
chiaramente modifica le variabili di ambiente di quella e non di quella
padre.
Se segui esattamente quel che dice fog dovrebbe funzionare.
Ciao, Luca
--
.''`. ** Debian GNU/Linux ** | Luca Bruno
: :' : The Universal O.S. | luca.br(AT)uno.it
`. `'` | GPG Key ID: 3BFB9FB3
`- http://www.debian.org | Proud Debian GNU/Linux User
On Wed, Apr 18, 2007 at 09:48:28AM +0200, Fabio La Farcioli wrote:dovrei riuscire ad assegnarli quel valore ad A nell'ambiente ??
no. Lo script eseguito come eseguibile vienesempre eseguito da una subshell (quella definita dalla prima riga #!/bin/bash dello script) e una subshell non puo` mai (tranne porcate tipo accesso diretto alla memoria da root) modificare l'ambiente della shell di cui e` subshell. Devi interpretare lo script come . /path/al/tuo/script ovvero source /path/al/tuo/script (nonta che per questo NON serve che /path/al/tuo/script sia eseguibile) e _non_ eseguire lo script come /path/al/tuo/script