打破案例陈述

时间:2014-12-07 08:58:10

标签: bash case-statement

如何阻止在关注代码中运行*)echo "Other"}?

我希望$a等于18时只回显“A”。现在回显“A”和“其他”

case "$a" in

[17-20])  
    echo "A"
    ;;
*) echo "Other"
   ;;
esac

2 个答案:

答案 0 :(得分:2)

您可以使用:

case "$a" in
  1[789])      # range 17-19
    echo "A"
    ;;
  20)          # only 20
    echo "A"
    ;;
  *)
    echo "Other"
    ;;
esac

缩短版本:

case "$a" in
  1[7-9]|20)      # range 17-19 and 20
    echo "A"
    ;;
  *)
    echo "Other"
    ;;
esac

答案 1 :(得分:1)

case不了解范围,只接受模式

相反,您可以使用if ... else

if ((a>=17 && a<=20)); then
  echo "A"
else
  echo "Other"
fi