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

Ubuntu 21.10下Bash脚本条件判断异常问题求助

问题排查与修复

你的脚本问题出在条件判断的语法错误上:你把算术判断的(( ))嵌套在了[[ ]]里,导致当a=10时,条件判断没有正确触发over输出。

错误原因

Bash中,[[ ]]是用于条件测试的结构,而(( ))是专门的算术表达式求值/判断语法,两者不能嵌套使用。原脚本里的[[ (($a>8)) ]]写法不符合Bash语法规范,导致判断逻辑失效。

修复方案

提供两种正确的写法:

方案1:使用(( ))进行算术判断

for a in {1..10};do
if (( a > 8 ))
then
    echo "over"
else
    echo "$a"
fi
done

方案2:使用[[ ]]的整数比较运算符-gt

for a in {1..10};do
if [[ $a -gt 8 ]]
then
    echo "over"
else
    echo "$a"
fi
done

执行任意一种修复后的脚本,都会得到正确输出:

1
2
3
4
5
6
7
8
over
over

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:25:34