Em shells POSIX:
cd -P -- "$(mycommand)"
-
$(cmd)
é substituição de comandos . Ele se expande para a saída padrão decmd
menos 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á commycommand
nem-
, 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-P
components.
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?