Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用 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
但是,当我在其他机器上尝试时..它工作没问题。请帮忙。
您的test.sh脚本具有 Windows 样式的行尾。shell 将每个\r\n序列视为\r行尾的一个字符。
test.sh
\r\n
\r
外壳是看到do\r而不是do。由于\r将光标发送到行首,这就是您在行首看到引号的原因。尝试
do\r
do
./test.sh 2>&1 | 猫-A
查看错误消息中的实际内容。
通过更正行尾之类的方法过滤您的test.sh脚本。dos2unix(请务必先阅读手册页;dos2unix与大多数文本过滤器不同,它会覆盖其输入文件。)
dos2unix
这是 Cygwin 上的常见问题。您是否使用 Windows 编辑器创建脚本?