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

运行嵌套双括号for循环Bash脚本时出现unexpected token '(('语法错误

解决Bash脚本的syntax error near unexpected token '(('错误

我帮你拆解下这个脚本的问题,主要有两处细节没处理好:

1. for循环与do之间缺少分隔符

Bash的for ((...))语法有严格的格式要求:循环条件结束后,必须用分号或者换行来分隔后面的do。你的内层for循环直接写成for ((j=1; j<=5; j++)) do,中间没有分隔符,这就触发了语法报错。

2. echo的选项用了中文符号

你脚本里的echo –n用的是中文破折号–,而非英文短横线-,这会让echo把–n当成普通字符串输出,没法实现“不换行”的效果。

修正后的完整脚本

for ((i=1; i<=5; i++)); do
    for ((j=1; j<=5; j++)); do
        echo -n "$i"
    done
    echo " "
done

逐点说明修改:

  • 给每个for ((...))后面加上了分号;,你也可以把do单独放在下一行,效果完全一致;
  • 把中文破折号替换成英文短横线,让echo -n的“不换行”功能正常生效;
  • 给变量$i套上双引号,这是Bash脚本的通用好习惯,能避免特殊字符带来的意外问题。

直接运行修正后的脚本,就能正常输出5行、每行5个对应数字的结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:34:59