use parênteses, então o cd ocorre em um subshell:
(cd other_dir && xxx)
Quando isso terminar, seu diretório de trabalho atual não será alterado.
cd pode falhar, então use &&
para executar o programa condicionalmente.
Estou usando um programa de linha de comando cuja documentação declara:
"Você pode executar o XXX na entrada localizada em outro diretório, mas sua saída será sempre ser colocado no diretório de trabalho atual ". Eu gostaria de ter a saída escrita para outro diretório embora.
Eu poderia (com cd
ou pushd
+ popd
)
ou
... mas ambos parecem desajeitados e propensos a erros se o script fosse editado por alguém que não estivesse ciente desse requisito. A única outra solução que posso pensar é juntar os comandos com ponto e vírgula. Existe outro jeito?
Isso está em apuros, a propósito.
use parênteses, então o cd ocorre em um subshell:
(cd other_dir && xxx)
Quando isso terminar, seu diretório de trabalho atual não será alterado.
cd pode falhar, então use &&
para executar o programa condicionalmente.