OK, quindi source
esegue lo script nella shell corrente e .
separatamente, come dettagliato nell'esecuzione dello script con "." E con "source" per esempio, ma, nello specifico, nel mio .bashrc
file, ho:
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
[ -f ~/.git-completion.bash ] && source ~/.git-completion.bash
[ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh
Posso sostituirlo con:
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash
[ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh
Funzionerà su OS X - è questo il problema "POSIX"?
L'ho provato e quanto sopra sembra ancora funzionare su Ubuntu (quindi funzionano effettivamente con entrambi source
e .
, cioè, mi danno la funzionalità desiderata nella shell). Dovrei scegliere l'uno sull'altro o mi sto perdendo qualcosa?
FWIW, su OS X, ho il mio sorgente .bashrc
dal mio .bash_profile
.
source
esegue lo script nella shell corrente e .
separatamente"? Entrambi lo eseguono nella shell corrente; altrimenti non avrebbe senso