Você precisa eval
da saída:
eval $(foo)
Caso contrário, &&
(ou qualquer outro elemento de linguagem semelhante) é tratado como se estivesse entre aspas: um argumento regular para cd
.
$ echo $(foo)
cd bar && source baz
Ignorando o primeiro echo
, isso executaria cd
com os quatro argumentos bar && source baz
, descartando silenciosamente todos, exceto o primeiro.