Der wichtigste Unterschied wird die Übersichtlichkeit deines Codes. Ja, ja, was oben gesagt wurde, ist wahr, aber [[ ]] bringt Ihren Code in Einklang mit dem, was Sie in Hochsprachen erwarten würden, insbesondere im Hinblick auf AND ( && ), OR ( || ), und NOT ( ! ) Betreiber. Wenn Sie also zwischen Systemen und Sprachen wechseln, können Sie Skripte schneller interpretieren, was Ihnen das Leben erleichtert. Holen Sie sich das Wesentliche aus einer guten UNIX/Linux-Referenz. Sie werden feststellen, dass manches Detail unter bestimmten Umständen nützlich sein kann, aber Sie werden es immer zu schätzen wissen clair Code! Welches Skriptfragment würden Sie lieber lesen? Auch ohne Kontext ist die erste Wahl einfacher zu lesen und zu verstehen.
if [[ -d $newDir && -n $(echo $newDir | grep "^${webRootParent}") && -n $(echo $newDir | grep '/$') ]]; then ...
o
if [ -d "$newDir" -a -n "$(echo "$newDir" | grep "^${webRootParent}")" -a -n "$(echo "$newDir" | grep '/$')" ]; then ...