Esse é um jeito.
Outra maneira é fazer:
until [ "$n" -ge 5 ] && exit 1; do
... && break
done
echo OK
exit 0
Ou:
while [ "$n" -lt 5 ] || exit; do
... && break
done
Embora aqui, parece que você quer repetir o comando ssh
até conseguir, e abortar depois de tantas tentativas, então:
n=5
until
ssh -oStrictHostKeyChecking=no root@test "mkdir -p /test_dir"
do
n=$((n - 1))
if [ "$n" -eq 0 ]; then
echo >&2 giving up
exit 1
fi
done
echo OK
exit 0
Faz mais sentido.