0

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

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

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

语法错误近在咫尺。它说“意外标记'do'附近的语法错误”。$LIST 由调用它的程序在此脚本之外设置。

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

4

1 回答 1

3

这当然是有效的语法,bash所以我会检查文件中是否有特殊字符,例如行尾的 CR/LF。

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

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

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

最后要检查的一件事是LIST,通过在循环echo "[$LIST]"之前执行,它实际上被设置为某些东西。for

于 2013-06-07T15:00:23.083 回答