我编写了以下的if-else语句
来检查directory1
或directory2
是否存在。
if [ -d /opt/directory1 ] || [ -d /opt/directory2 ]; then
echo "SUCCESS"
else
echo "FAil
fi
然而,在一些服务器上,我遇到了一个错误。
[: /opt/directory1: binary operator expected
所有服务器都使用 bash
。
if [[ -d /opt/directory1 ]] || [[ -d /opt/directory2 ]] ; then
echo "SUCCESS"
else
echo "FAIL"
fi
-d
的用法。[[ -d /foo/bar/baz ]]
,您需要访问 /foo 和 /foo/bar,但不需要访问 /foo/bar/baz。 - Gordon Davisson一个简单的 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
echo $0
检查当前正在运行的shell。 - Ronan Boiteaubash
,我也已经检查过了。 - meallhour