Bash for循环报错求助:done被识别为意外令牌
Bash for循环语法错误修复
错误原因及修复步骤
- 大括号扩展语法错误:Bash的大括号序列需要用逗号分隔元素,你用了空格,正确写法是
{1,2,3}而非{1 2 3}。 - 循环体不能为空:
do和done之间必须包含至少一条命令,哪怕是占位用的空命令也可以。
修复后的示例脚本
如果需要执行具体逻辑,比如打印循环变量:
#!/bin/bash for ln in {1,2,3}; do echo "当前循环值: $ln" done exit 0
如果只是需要占位(暂时不执行逻辑),可以用Bash的空命令::
#!/bin/bash for ln in {1,2,3}; do : # 空命令,仅用于占位满足语法要求 done exit 0
验证执行
给脚本添加执行权限后运行即可正常工作:
chmod +x Untitled-1.sh ./Untitled-1.sh
内容的提问来源于stack exchange,提问作者brsera
相关产品推荐
相关产品推荐

