[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] Modalita' esecuzione script



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
--
Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
Archivi web e configurazione: http://ml.linuxvar.it/ml/