Foi um erro de sintaxe, os comandos acima devem terminar com fi
não if
$ if [ ! -d mydirectoryNO ] ; then echo YES ; fi
YES
De qualquer forma, eu também encontrei este link relacionado legal: O comando de teste clássico [Wiki do Bash Hackers]