全网首发:SHELL多个判断条件,不会短路
Posted 柳鲲鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网首发:SHELL多个判断条件,不会短路相关的知识,希望对你有一定的参考价值。
- 工作
存在一个目录叫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判断目录不存在,在与的条件下后面的就不处理了。这个叫做短路。实际上并没有短路。
- 解决办法
判断条件分开。
以上是关于全网首发:SHELL多个判断条件,不会短路的主要内容,如果未能解决你的问题,请参考以下文章