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

时间:2018-07-14 19:23:27

标签: bash shell

我写了一条if-else statement,以检查是否存在directory1directory2

if [ -d /opt/directory1 ] || [ -d /opt/directory2 ]; then
 echo "SUCCESS"
else
 echo "FAil
fi

但是,在某些服务器上我遇到了错误

[: /opt/directory1: binary operator expected

所有服务器都在使用bash

2 个答案:

答案 0 :(得分:3)

使用Bash,这将为您提供所需的行为:

if [[ -d /opt/directory1 ]] || [[ -d /opt/directory2 ]] ; then
    echo "SUCCESS"
else
    echo "FAIL"
fi

请注意在两种情况下都使用-d

答案 1 :(得分:1)

简单的Shell脚本为您提供了答案。

#!/bin/bash
DIR="$1"

if [ $# -ne 1 ]
then
    echo "Usage: $0 {dir-name}"
    exit 1
fi

if [ -d "$DIR" ]
then
    echo "$DIR directory  exists!"
else
    echo "$DIR directory not found!"
fi