Bash:-d的用法给出了错误的结果

时间:2018-07-14 20:29:24

标签: bash shell awk sed grep

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

if [ -d /opt/directorya* ] || [ -d /opt/directoryb* ]; then
 echo "SUCCESS"
else
 echo "FAil
fi

但是,即使其中一个目录存在,我也会得到FAIL

所有服务器都在使用bash

请注意目录名称asterik directorya*中的directoryb*

在这里,directorya*表示所有以directorya名称开头的目录。

在这里,directoryb*表示所有以directoryb名称开头的目录。

1 个答案:

答案 0 :(得分:3)

将目录转储到数组中并计数:

shopt -s nullglob
dirs=(/opt/directory[ab]*/)

if ((${#dirs[@]})); then
    echo "success"
else
    echo "fail"
fi