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

Bash执行脚本返回[: =: unexpected operator错误如何解决?

shell脚本[: =: unexpected operator报错原因及解决方案

报错原因

出现该错误核心是[ 条件判断的语法解析异常,常见触发原因有两个:

  • 脚本执行用的是dash解释器:Ubuntu、Debian等发行版默认将/bin/sh 链接到dash,dash的语法校验比bash更严格,当$c 变量为空或者未正确赋值时,[ $c = "+" ] 会被解析为[ = "+" ],缺少左操作数触发语法错误。
  • 变量未加双引号包裹:未包裹双引号的变量在shell解析阶段如果为空、包含空格或特殊字符,会被拆分为多个参数,导致[ 命令接收到的参数数量不符合预期。

修复方案

  • 给条件判断中的变量全部加上双引号,避免空值或特殊字符导致的解析异常,将判断行修改为:
if [ "$c" = "+" ]; then
  • 明确指定bash作为脚本解释器,二选一操作即可:
    • 在脚本第一行添加shebang声明 #!/bin/bash,给脚本加执行权限后用./simple.sh 执行
    • 执行脚本时直接指定解释器:bash simple.sh

修正后完整参考代码

#!/bin/bash
# 示例:从执行参数读取a b c三个值
a=$1
b=$2
c=$3

echo "$a $b $c = "

if [ "$c" = "+" ]; then
    echo $(($a + $b))
fi

内容的提问来源于stack exchange,提问作者Lê Quốc Khánh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:54:00