You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Bash脚本的while循环输入无效值时仍继续提示输入?

Bash 脚本修改实现方案

核心修改逻辑:原脚本的无效输入分支直接执行exit退出,且无效输入判断逻辑错误,同时输入非true/false值会导致循环条件while $var不成立直接退出,只需调整无效输入的处理逻辑即可实现需求。

修改后的完整脚本如下:

#!/bin/bash
var="true"
i=1
while $var
do
  read -p "Enter value (true/false): " var
  if [[ $var == "true" ]]
  then
    echo "Iteration : $i"
    ((i++))
  elif [[ $var == "false" ]]
  then
    echo "Exiting the process"
  else
    echo "Invalid Choice."
    echo "Available Choices are true or false"
    # 重置var为true,保证循环继续执行
    var="true"
  fi
done

关键修改点:

  • 替换了原逻辑中错误的[[ $? -eq 1 ]]无效输入判断,改用else分支直接捕获所有非true/false的输入,逻辑更清晰准确
  • 移除了无效输入分支中的exit退出命令,避免输入无效值直接结束脚本
  • 无效输入分支新增var="true"赋值,避免无效值赋值给var后导致while $var循环条件不成立退出
  • 修正了原脚本中拼写错误的Avaialable为正确的Available

内容的提问来源于stack exchange,提问作者auto_learn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:54:05