案例陈述和比较运算符

时间:2017-10-10 09:38:04

标签: shell unix ksh comparison-operators

在评估字符串长度的case语句时遇到问题。更特别的是,不起作用的部分对应于包含[[$ {#numPase} -lt 8]]的行。

  read numPase
  case $numPase in
     q|Q) var_cntrl_pase_ok=false
          ;;
     (*[!0-9]*|'')
          echo " "
          echo "Variable must contain integers. Press key to continue."
          read
          ;;
     [[ ${#numPase} -lt 8 ]])
          echo " "
          echo "Variable must have 8 digits. Press key to continue."
          read
          ;;
  esac

注意: 变量numPase从用户输入中获取值。 第一种情况确定用户是否按q或Q退出菜单循环。第二和第三种情况是不言自明的

为什么8位数验证不起作用?

1 个答案:

答案 0 :(得分:0)

模式必须是由vbars分隔的一个或多个glob。模式中的任何文本都将被视为glob,而 never 将被视为命令。