Shell里独特的if语句

今天在写分支的时候,一段代码硬是不执行,最后一点点测试才发现居然是if 0居然为真,没有想到会是这个问题,浪费很会时间

#!/bin/bash

if [ “$#” ];
then
    echo “yes”
else
    echo “no”
fi

大概意思就是,这个小例子当中本来是为了判断脚本执行是否携带参数,然后不同的处理,结果不管if里面是神马数字,都会进入then里,蛋疼了半天,最后把if里条件写满居然对了,心里顿时涌现出无数的那啥

#!/bin/bash

if [ “$#” -le 0 ];
then
    echo “yes”
else
    echo “no”
fi

看来以后shell里if语句得慎重点,免得很多都进不去else的,没有测试出来导致出问题

发表回复