[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux_var] Modalita' esecuzione script
On Thu, Jul 17, 2008 at 06:53:00PM +0200, 0bscure wrote:
> On Thu, Jul 17, 2008 at 4:49 PM, Luca Lesinigo <lucky@luckyluke.org> wrote:
>
> > In alcune macchine se devo lanciare uno script, pippo.sh per esempio devo
> > fare:
> > # . ./pippo.sh
> >
> > . ?
> >
> > Assai strano.
> >
>
>
> Per niente. Prova...
>
E' l'equivalente del comando source in csh.
Partiamo dall'inizio. Quando si esegue uno script, questo viene eseguito da
una nuova istanza della shell, che morira' al termine dello script.
Questo curioso comportamento, ovvero lo script che gira in una shell
separata, ha i seguenti vantaggi:
* puo' essere utilizzata una shell diversa da quella attuale (se la prima
riga dello script inizia per #! viene usata quella)
* se lo script cambia delle variabili d'ambiente quelle rimangono confinate
allo script senza inquinare la shell corrente.
* se si vuole killare lo script non e' necessario uccidere la shell corrente
Questo significa anche che uno script di shell non puo' modificare le
variabili d'ambiente della shell da cui e' stato lanciato. Il 99% dei casi
cio' e' bene. Ma in alcuni casi fa comodo il contrario. La soluzione in
questo caso e' di chiedere alla shell corrente di interpretare il file
invece di forkare una nuova shell.
Per farlo si usa: ". <nome file>".
Lanciare uno script qualsiasi usando "." e' ovviamente sconsigliato.
--
Saluti / Regards
Diego Roversi |
| diegor at tiscalinet.it
--
Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
Archivi web e configurazione: http://ml.linuxvar.it/ml/