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

为何我的Shell代码无论输入奇偶始终返回Even?

问题分析与解决

你的Shell脚本始终返回"Even"的核心原因是:测试代码通过命令行参数传递数字,但脚本却在等待从标准输入读取值,导致变量x没有被正确赋值为目标数字。在Bash的算术表达式((...))中,未定义的变量会被当作0处理,而0是偶数,所以脚本永远输出"Even"。

修正后的Shell脚本

把原来依赖标准输入的read语句改成从命令行参数获取数字:

x=$1
if ((x % 2 == 0)); then
    echo "Even"
else
    echo "Odd"
fi

为什么这样改?

测试代码里的run_shell(args: [x])是将数字作为第一个命令行参数传给Shell脚本,用$1就能直接拿到这个数字,替代原来交互式的read读取逻辑,这样脚本就能正确接收测试用例里的数字,完成奇偶判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:34:55