La différence la plus importante sera la clarté de votre code. Oui, oui, ce qui a été dit ci-dessus est vrai, mais [[ ]] apporte à votre code en ligne avec ce que vous attendez de haut niveau des langues, en particulier en ce qui concerne ET (&&), OU (||), et non PAS (!) des opérateurs. Ainsi, lorsque vous vous déplacez entre les systèmes et les langues que vous serez en mesure d'interpréter script plus rapide, ce qui rend votre vie plus facile. Obtenir les tenants et aboutissants d'une bonne UNIX/Linux de référence. Vous trouverez peut-être des choses sérieuses pour être utile dans certains cas, mais il vous sera toujours reconnaissant clair code! Qui fragment de script préférez-vous lire? Même hors contexte, le premier choix est plus facile à lire et à comprendre.
if [[ -d $newDir && -n $(echo $newDir | grep "^${webRootParent}") && -n $(echo $newDir | grep '/$') ]] then ...
ou
if [ -d "$newDir" -a -n $(echo "$newDir" | grep "^${webRootParent}") -a -n $(echo "$newDir" | grep '/$') ] then ...