Bash For循环语法错误

时间:2013-06-07 14:55:13

标签: bash for-loop syntax-error

我正在尝试执行一个简单的for循环,但它一直告诉我附近有一个语法错误。我试图在网上找到一些答案,但似乎没有什么能回答我的问题。

for循环就是如此。它想要做的就是找到两个文件夹之间的差异:

#!/bin/bash
for word in $LIST; do
 diff DIR1/config $word/config
done
exit

语法错误就在附近。它说"语法错误接近意外令牌'做'"。 $ LIST由调用它的程序设置在此脚本之外。

有谁知道这里会发生什么?

1 个答案:

答案 0 :(得分:3)

这对于bash来说肯定是有效的语法,所以我会检查文件中某处是否有特殊字符,例如行尾的CR / LF。

假设你在UNIXy系统上,od -xcb scriptname.sh应该告诉你。

此外,您可能还想使用$word而不只是word,因为您需要评估变量。

要检查的另一件事是 实际上是在bash而不是某些“较小”的shell下运行它。并且在脚本中放置set -x以进行调试通常很方便,因为它在执行之前输出行(使用set +x关闭此功能)。

要检查的最后一件事是LIST实际设置为某种内容,方法是在echo "[$LIST]"循环之前执行for