您当前的位置: 首页 > 

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

全网首发:SHELL多个判断条件,不会短路

柳鲲鹏 发布时间:2021-10-25 11:37:21 ,浏览量:0

  • 工作

  存在一个目录叫resource-taishan,目录为空。想判断这个目录及其子目录是否存在。

  • 代码如下
    for dir in resource-taishan      \
               resource-taishan/resource-${BUILD_CPU}
    do
        result=exist.
        if [ -d ${dir} -a "`ls -A ${dir}`" != "" ]; then
            result="not ${result}"
        fi
        echo ${dir} ${result}
    done
  • 运行结果
resource-taishan not exist.
ls: 无法访问'resource-taishan/resource-amd64': 没有那个文件或目录
resource-taishan/resource-amd64 exist.

  我们以为,-d判断目录不存在,在与的条件下后面的就不处理了。这个叫做短路。实际上并没有短路。

  • 解决办法

判断条件分开。

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0746s