Parece que você está tentando atribuir $PWD a $outDir apenas no caso de $outDir não ser definido ou de valor nulo, sim?
O que se segue é equivalente, penso:
printf 'We are here: "%s"\n $outDir = "%s"\n' \
"$PWD" "${outDir:=$PWD}"
Se $outDir já tiver um valor atribuído, para o segundo argumento de printf , que imprime seu valor, senão ele atribui simultaneamente o valor de $PWD a $outDir e o imprime.
É claro que, embora a chamada ${outDir:=$PWD} variable auto-corrija um valor nulo ou não definido, ele não tenta verificar se é um diretório . O mesmo acontece com o seu cheque acima. E provavelmente melhor do que qualquer um deles é:
cd -- "${outDir:=$PWD}" || exit; cd - >/dev/null
cd não apenas verificará se a seleção do usuário para $outDir está correta, mas também imprimirá um erro se não for ou não puder ser acessado pelo usuário. cd - apenas o levará de volta para onde você estava antes de testar com cd em primeiro lugar no caso de um teste bem-sucedido. O redirecionamento >/dev/null é apenas para manter cd - da impressão $PWD , o que ele fará quando usado de outra forma.
Se o usuário não atribuiu $outDir , no entanto, seu valor é atribuído apenas ao valor de $PWD como antes, o que implica um teste bem-sucedido e dois cd $PWD de comandos em sucessão, pois o - é substituído por $OLDPWD - que é aqui também $PWD .