Bash For 循环不起作用

Aft*_*eed 1 bash windows-subsystem-for-linux

我正在尝试执行这个简单的 bash 脚本,但出现语法错误。我在这里遵循了这个简单的文档https://www.cyberciti.biz/faq/bash-for-loop/但没有运气。我不确定我做错了什么?

#!/bin/bash
for i in 1 2 3 4 5
do
    echo "Count $i"
done;
Run Code Online (Sandbox Code Playgroud)

错误:

setup.sh: 3: setup.sh: Syntax error: word unexpected (expecting "do")
Run Code Online (Sandbox Code Playgroud)

我正在从我的 Windows 子系统 Linux (WSL) 执行该脚本。

Kus*_*nda 10

您的脚本文件是一个 DOS 文本文件。每行末尾的额外回车bash令人困惑(它看到do\r而不是do)。

使用诸如 之类的工具将其转换为 Unix 文本文件dos2unix,或确保您的编辑器将其保存为 Unix 文本文件。

  • @AftabNaveed 由编辑器正确保存文件。shell 不会对文件的内容进行进一步的修改(或者可能会出现错误,例如,如果您确实需要在某行末尾添加 `\r`)。 (2认同)