bash中for循环编写错误执行无响应 应如何排查语法问题?
Bash批量执行作业文件的for循环语法错误修复
问题原因
你遇到终端输出>提示符是因为输入的for循环不符合Bash语法规则,Bash判定命令未输入完整,进入了续行等待状态。后续输入任意内容触发的-bash: 语法错误,附近有意外的标记报错,也是语法不规范导致的。
你之前的所有写法存在三类共性错误:
- 循环列表
jobs_test/*.job和do关键字之间没有合法分隔符(分号或换行),Bash无法识别循环结构的边界 sbatch和参数之间没有空格,会被识别为一个不存在的命令- 调用遍历变量时遗漏
$符号,写为sbatch i时会直接把字符串i作为参数传给sbatch,而非你匹配到的作业文件名
正确写法
单行执行写法
for i in jobs_test/*.job; do sbatch $i; done
多行执行写法(更易排查语法问题)
for i in jobs_test/*.job do sbatch $i done
内容的提问来源于stack exchange,提问作者Gmichael
相关产品推荐
相关产品推荐

