linux - 直到循环与 if 语句

标签 linux bash shell

我被困在一个部分,我不明白为什么,让我粘贴我的代码:

    local correctId=false
    echo $ticketMessage
    read deviceId

     until [[ $deviceId =~ [0-9]+ && correctId = true ]]; do

      if [ ! -e $baseDevicesPath"/$deviceId" ]; then
       echo $deviceError
       correctId=false
      else
       correctId=true
      fi

     if [[ ! $deviceId =~ [0-9]+ ]]; then
       echo $ticketMessage
     fi

      read deviceId
     done

    echo "I DONT COME HERE?"

如果 deviceId 和 correctId 都为真,它应该退出 until 循环并继续吗?但它没有,知道我在这里做错了什么吗?

最佳答案

你只是有一个简单的错字。您在您的情况下缺少 correctID 前面的 $:

local correctId=false
echo $ticketMessage
read deviceId

 until [[ $deviceId =~ [0-9]+ && $correctId = true ]]; do

  if [ ! -e $baseDevicesPath"/$deviceId" ]; then
   echo $deviceError
   correctId=false
  else
   correctId=true
  fi

 if [[ ! $deviceId =~ [0-9]+ ]]; then
   echo $ticketMessage
 fi

  read deviceId
 done

echo "NOW YOU WILL END HERE"

关于linux - 直到循环与 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29470635/

相关文章:

php apache 权限 - 最佳实践

python - 如何计算子进程发出的每个 UDP 数据包?

string - awk 全局替换所有出现的字符串

r - 在 R 中使用 system2() 调用 shp2pgsql

linux - Linux shell 脚本中的逻辑或错误

linux - Apache RPM 目录列表

python - 网络扫描器脚本返回问号

bash - 在 bash 中将参数视为输入流

python - 如何循环 Automator 工作流程?

linux - 创建文件并将其放入文件夹 - Bash 脚本