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.
Il . si usa per eseguire i comandi nello stesso environment della shell corrente. Legge anche la variabile PATH.
Se poi importi altre variabili o meno e' una conseguenza.
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.
Che cosa sono gli alias lo sappiamo. Come funzionano anche.
Lo riscrivo in versione estesa: io devo definire degli alias caricandoli da un file.
La domanda e' perche' uno script in quella dir e' eseguibile (path o meno) mentre gli alias non vengono caricati?
La risposta me la sono trovata da solo:
facendo ./alias i comandi vengono eseguiti in una nuova shell, forkata da quella di lancio e quindi al termine dell'esecuzione niente alias
facendo . ./alias i comandi vengono eseguiti con l'env della shell corrente e quindi aggiunti gli alias
Piu' o meno dovrebbe essere cosi
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 :)
Questa e' una ml aperta alle domande di tutti, belli e brutti, newbie e supergeni. Se uno puo' aiutare risponde, se non puo' semplicemente tace. Rispondere "leggiti il manuale" lo abbiamo sempre lasciato alle mailing list di sboroni!
Io ti suggerisco quindi di cercarti un bel centro di ascolto. Google is your friend :) oppure un bel man umiltà che di sicuro non hai mai letto
La pulenta e ùl vin ross a fan ben ai oss!! Picaa giòò fin a la mort...