[linux_var] Modalita' esecuzione script

Luca Lesinigo lucky a luckyluke.org
Gio 17 Lug 2008 18:19:54 UTC


Il giorno 17/lug/08, alle ore 18:53, 0bscure ha scritto:
>>> In alcune macchine se devo lanciare uno script, pippo.sh per  
>>> esempio devo fare:
>>> # . ./pippo.sh
>> . ?
> Assai strano.
> Per niente. Prova...
Che funzioni non è strano. Come potrai leggere in man bash ".  
qualcosa" è un'abbreviazione per "source qualcosa".
Che 'devo fare . ./pippo' è strano.
Il source (o .) si usa per importare (come il nome suggerisce)  
variabili d'ambiente. Cosa che di solito si vuole evitare da uno  
script "one-time". A parte il volerlo evitare o meno, di sicuro non è  
"necessario". Per approfondire leggiti (sempre nel famoso man bash o  
equivalente) le regole sulla propagazione delle variabili d'ambiente.

>> non mi e` mai capitato, di solito e` semplicemente
>> $ ./pippo.sh
> Assai meglio.
> Diverso dal precedente a quanto pare
Sure.

>>> mentre in altre mi basta lanciare il nome dello script
>
> Perché lo script è nel path.
> No non mi son spiegato bene.
> Lanciare con solo il nome dello script o ./nomescript mi torna
il primo è un comando senza path, quindi verrà cercato solo ed  
esclusivamente nelle directory specificate dalla variabile d'ambiente  
PATH
il secondo è un comando con path relativo, quindi verrà cercato solo  
ed esclusivamente in quel percorso ignorando del tutto PATH

> Il file e' un file di alias.. del tipo
> #!/bin/ksh
> alias uccidi='kill -9 -1'
Gli alias non sono file, fanno parte dell'espansione di shell e  
vengono interpretati PRIMA di eseguire la commandline.
Il path non si applica al nome dell'alias, si applica al comando che  
esegue.

>>> Perche'? Mi pare sia un parm di config della shell?
> man bash, alla voce PATH
> bash chi??
man ksh allora. Comunque prima di usare una shell, suggerisco di  
leggersene il manuale :)

--
Luca Lesinigo


More information about the Talking mailing list