Bash for循环错误

时间:2012-07-11 22:42:08

标签: bash for-loop

我正在使用for循环尝试一个简单的bash脚本,并不断收到以下错误:

'/test.sh: line 2: syntax error near unexpected token `do
'/test.sh: line 2: `do

以下是正在使用的代码......

for animal in dog cat elephant
do
    echo "There are ${animal}s.... "
done

然而,当我尝试其他机器时......它没有问题。 请帮忙。

1 个答案:

答案 0 :(得分:3)

您的test.sh脚本具有Windows样式的行结尾。 shell将每个\r\n序列视为行尾的\r字符。

shell看到do\r而不是do。由于\r将光标发送到行的开头,这就是为什么你在行的开头看到引号。尝试

./ test.sh 2>& 1 |猫-A

查看错误消息中的实际内容。

通过类似test.sh的内容过滤dos2unix脚本以更正行结尾。 (请务必先阅读手册页;与大多数文本过滤器不同,dos2unix会覆盖其输入文件。)

这是Cygwin的常见问题。您是否使用Windows编辑器创建脚本?