Em shells POSIX:
cd -P -- "$(mycommand)"
-
$(cmd)é substituição de comandos . Ele se expande para a saída padrão decmdmenos os caracteres de nova linha à direita. - %código%. Sem as aspas, essa expansão estaria sujeita a split + glob que não queremos aqui.
-
"$(cmd)"separa as opções dos argumentos. Se você souber que a saída de--não começará commycommandnem-, você poderá omiti-la. Se não for+output, seja considerado como opção parathat -
cdé o comando para alterar o diretório atual. No entanto, semcd, ele pode não mudar para o diretório fornecido como argumento se ele contiver-Pcomponents.
Ou você pode escrever .. . Isso seria muito desleixado, mas funcionaria desde que a saída de cd $(mycommand) não contenha espaços, tabulações, nova linha, mycommand , * , ? caracteres ou [ componentes e não comece com .. ou - .
Agora eu ouço você perguntar, como eu mudaria em um diretório que termina em caracteres de nova linha com esses comandos?