Com uma abordagem plugins-run-in-subshell (embora isso tenha inconvenientes principalmente se os plugins precisam manipular o estado no pai), o plug-in pode emitir as chamadas chdir
desejadas, já que isso não alterará o funcionamento diretório do pai:
assumethisistheplugincode() {
cd /tmp
pwd
}
cd /var/tmp || exit 1
printf "before "
pwd
# and this is how we run a "plugin", in a subshell...
( assumethisistheplugincode )
printf "after "
pwd