Considera la función bash:
func() {
cd /;
echo test;
}
Llamarlo hace lo que esperas:
~:>func
test
/:>
Pero cuando se llama desde una subshell (p. ej., usar backticks o $ ()) se realiza de forma muy extraña.
~:>func() { cd /; echo test; }
~:>echo $(func)
test Saving session... ...saving history...truncating history files... ...completed.
~:>
Este problema no aparece si no se ejecuta cd
en la función:
~:>func() { echo test; }
~:>echo $(func)
test
~:>
Esto está causando problemas con algunos scripts que se basan en ciertos comportamientos de salida, por ejemplo, CLASSPATH=$(func)
, donde func
es complejo y requiere el uso de cd
.
Lo extraño es que esto funcionó bien antes. No comenzó a suceder hasta hace poco, pero no sé qué lo habría causado.
Nota: alias cd
informa "alias: cd: no encontrado" y which cd
devuelve / usr / bin / cd, que es un script que es idéntico a otro Mac que no tiene el problema.