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

zsh脚本字符串比较条件判断异常问题求助

问题排查与修复

你的脚本错误出在字符串比较误用了整数运算符:

在zsh的[[ ... ]]条件判断中,-eq是专门用于整数数值比较的运算符。当你用它比较字符串时,zsh会尝试将字符串转换为整数,转换失败后会触发非预期行为:

  • 输入"A"时,两个无法转换的字符串被判定为等效数值,条件成立输出正确;
  • 输入"B"时,因zsh对不同非数字字符串的解析差异,条件不成立输出错误;
  • 输入"C"、"f"等其他字符时,同样被判定为与"A"等效的数值,错误输出"Correct answer!!"。

修复方法

将整数比较运算符-eq替换为zsh中用于字符串比较的==(或=,两者在[[ ... ]]中行为一致):

#!/bin/zsh
# Author: Cristhian Rodriguez
# Conditional statement

OPTION=""
read OPTION\?"Input an option (A or B): "

if [[ $OPTION == "A" ]]; then
  echo "Correct answer!!"
else
  echo "Wrong answer!!"
fi

测试验证

修复后测试各输入,结果符合预期:

Input an option (A or B): A // Correct answer!!
Input an option (A or B): B // Wrong answer!!
Input an option (A or B): C // Wrong answer!!
Input an option (A or B): f // Wrong answer!!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:25:33