<p>What command checks if a directory exists or not within a Bash shell script?</p>

To check if a directory exists:
```
```
if [ -d "$DIRECTORY" ]; then
  echo "$DIRECTORY does exist."
fi
```
```
To check if a directory does not exist:
```
```
if [ ! -d "$DIRECTORY" ]; then
  echo "$DIRECTORY does not exist."
fi
```
```
However, as
Jon Ericson
points out, subsequent commands may not work as intended if you do not take into account that a symbolic link to a directory will also pass this check.
E.g. running this:
```
```
ln -s "$ACTUAL_DIR" "$SYMLINK"
if [ -d "$SYMLINK" ]; then 
  rmdir "$SYMLINK" 
fi
```
```
Will produce the error message:
```
```
rmdir: failed to remove `symlink': Not a directory
```
```
So symbolic links may have to be treated differently, if subsequent commands expect directories:
```
```
if [ -d "$LINK_OR_DIR" ]; then 
  if [ -L "$LINK_OR_DIR" ]; then
    # It is a symlink!
    # Symbolic link specific commands go here.
    rm "$LINK_OR_DIR"
  else
    # It's a directory!
    # Directory command goes here.
    rmdir "$LINK_OR_DIR"
  fi
fi
```
```
Take particular note of the double-quotes used to wrap the variables. The reason for this is explained by 8jean
in another answer
.
If the variables contain spaces or other unusual characters it will probably cause the script to fail.