Bash:如何检查目录是否存在?

mea*_*our 3 bash shell

我已经写了下面的if-else statement检查directory1directory2存在与否

if [ -d /opt/directory1 ] || [ -d /opt/directory2 ]; then
 echo "SUCCESS"
else
 echo "FAil
fi
Run Code Online (Sandbox Code Playgroud)

但是,在某些服务器上,我收到错误消息

[: /opt/directory1: binary operator expected
Run Code Online (Sandbox Code Playgroud)

所有服务器都在使用 bash

Ron*_*eau 6

使用 Bash,这将为您提供您正在寻找的行为:

if [[ -d /opt/directory1 ]] || [[ -d /opt/directory2 ]] ; then
    echo "SUCCESS"
else
    echo "FAIL"
fi
Run Code Online (Sandbox Code Playgroud)

注意-d在这两种情况下的用法。