Ubuntu下.sh文件报错求助:[: 0: unexpected operator循环触发
Shell脚本错误排查与修复
核心错误原因:脚本第4行的
-equ是无效的整数比较操作符。在Bash的[ ](test命令)语法中,判断整数相等应该使用-eq,而非-equ,这直接导致了每次循环都抛出[: 0: unexpected operator的错误。修复后的脚本代码:
i=0 while [ $i -lt 100 ] do if [ $((i%3)) -eq 0 ] ; then ((i=i+1)) continue fi echo $i ((i=i+1)) done #end
- 额外说明:
- 你怀疑的空格问题在这里不存在,
[与表达式、表达式与]之间的空格使用是正确的,这是[ ]语法的必要要求。 - Shell的关键字、操作符确实区分大小写,所有整数比较操作符(如
-lt、-eq、-gt等)都是小写形式,使用时需注意。
- 你怀疑的空格问题在这里不存在,
内容的提问来源于stack exchange,提问作者Root Groves
相关产品推荐
相关产品推荐

