【问题标题】:case statement and comparison operatorcase 语句和比较运算符
【发布时间】:2017-10-10 09:38:03
【问题描述】:

在评估字符串长度的 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 位验证不起作用?

【问题讨论】:

    标签: shell unix ksh comparison-operators


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 2022-01-09
      • 2018-11-10
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多