Bash 破例陈述

Bash 破例陈述,bash,case-statement,Bash,Case Statement,如何防止在后续代码中运行*)(使用回显“其他”)呢 我想当$a等于18时,只需回显“a”。现在回应“A”和“其他” case不知道范围,只接受模式 相反,如果。。。else if ((a>=17 && a<=20)); then echo "A" else echo "Other" fi 如果((a>=17&&a您可以使用: case "$a" in 1[789]) # range 17-19 echo "A" ;; 20)

如何防止在后续代码中运行
*)
(使用
回显“其他”
)呢

我想当
$a
等于18时,只需回显“a”。现在回应“A”和“其他”


case
不知道范围,只接受模式

相反,如果。。。else

if ((a>=17 && a<=20)); then
  echo "A"
else
  echo "Other"
fi
如果((a>=17&&a您可以使用:

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
不能复制,因为没有打印“A”。这并不奇怪,因为字符范围不是这样工作的。
case "$a" in
  1[7-9]|20)      # range 17-19 and 20
    echo "A"
    ;;
  *)
    echo "Other"
    ;;
esac