如何使案例陈述与数字范围匹配?

沙米克:

我正在运行一个开关箱,其列号可以在0到50的范围内。现在每种情况都支持离散列号,并且观察到它的故障。

这是代码:

    i=10
    a=1
    b=0.65
    if [ "$a" != "$b" ]; then 
       case $i in  
            [1]|[2]|[5]) echo "Not OK"; ;; 
            [9-10]|[12]) echo "may be ok"; ;; 
            *) echo "no clue - $i"; ;; 
       esac
   fi

我希望此代码能够输出may be ok但得到no clue - 10

Arnon Zilca:

Bash case不适用于数字范围。[]用于外壳图案。

例如,这种情况[1-3]5|6)适用于15或25或35或6。

您的代码应如下所示:

i=10
a=1
b=0.65
if [ "$a" != "$b" ] ; then
   case $i in
        1|2|5) echo "Not OK"; ;;
        9|10|12) echo "may be ok"; ;;
        *) echo "no clue - $i"; ;;
   esac;
fi

如果i可以real 9到10 之间,则需要使用if(而不是大小写)范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章