pushd
é um comando bash
, que geralmente não é implementado por /bin/sh
. Para usar pushd
em um script sh
, você teria que fornecer um script ou função com a mesma funcionalidade.
A maneira idiomática de alterar temporariamente o diretório de trabalho de alguém para o curso de alguns comandos em um script sh
é fazer
( cd directory && somecommand )
Isso mudaria para directory
e executaria somecommand
se isso fosse bem-sucedido. A coisa toda é feita em um subshell, então o cd
não terá nenhum efeito no restante do script.
Alternativamente,
( cd directory || exit 1
command1
command2
command3 )