Considera la funzione bash:
func() {
cd /;
echo test;
}
Chiamarlo fa quello che ti aspetti:
~:>func
test
/:>
Ma quando chiamato da una subshell (es. usando backticks o $ ()) si comporta in modo molto strano.
~:>func() { cd /; echo test; }
~:>echo $(func)
test Saving session... ...saving history...truncating history files... ...completed.
~:>
Questo problema non appare se cd
non viene eseguito nella funzione:
~:>func() { echo test; }
~:>echo $(func)
test
~:>
Questo sta causando problemi con alcuni script che si basano su determinati comportamenti di output, ad esempio CLASSPATH=$(func)
dove func
è complesso e richiede l'uso di cd
.
Ciò che è strano è che questo ha funzionato bene prima. Non è iniziato a succedere fino a poco tempo fa, ma non so cosa lo avrebbe causato.
Nota: alias cd
riporta "alias: cd: not found" e which cd
restituisce / usr / bin / cd, che è uno script identico a un altro Mac che non ha il problema.