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

Bash脚本数组操作报错求助:Syntax error: "(" unexpected

问题原因与解决建议

问题根源

你的脚本使用了Bash特有的数组语法,但执行时调用的是sh——多数系统中/bin/sh是POSIX兼容的轻量shell(比如Dash),它不支持Bash的数组初始化(ERROR_MESSAGES=("Error1"))和数组追加(+=)语法,因此触发语法错误。

另外,脚本开头的#!/bin/sh指定了默认用POSIX shell执行,即便系统中存在Bash,也会强制用sh来解析脚本,导致语法不兼容。

解决方法

方法1:改用Bash执行脚本

修改脚本的shebang行,将开头的#!/bin/sh替换为:

#!/bin/bash

然后给脚本添加执行权限:

chmod +x Text.sh

之后直接执行脚本:

./Text.sh

或者不修改shebang,直接用Bash命令执行:

bash Text.sh

方法2:适配POSIX Shell(无需Bash)

如果必须在POSIX兼容的sh中运行,可放弃数组,改用空格分隔的字符串模拟:

#!/bin/sh

EXIT_CODE=0
ERROR_MESSAGES="Error1"

# 追加错误信息
ERROR_MESSAGES="$ERROR_MESSAGES Error1"
ERROR_MESSAGES="$ERROR_MESSAGES Error2"
ERROR_MESSAGES="$ERROR_MESSAGES Error3"

# 遍历所有错误信息的示例
set -- $ERROR_MESSAGES
for msg in "$@"; do
    echo "Error: $msg"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:30:44