我正在尝试执行这个简单的 bash 脚本,但出现语法错误。我在这里遵循了这个简单的文档https://www.cyberciti.biz/faq/bash-for-loop/但没有运气。我不确定我做错了什么?
#!/bin/bash
for i in 1 2 3 4 5
do
echo "Count $i"
done;
错误:
setup.sh: 3: setup.sh: Syntax error: word unexpected (expecting "do")
我在这里从我的 Windows 子系统 Linux (WSL) 执行该脚本。
您的脚本文件是一个 DOS 文本文件。每行末尾的额外回车会造成混淆
bash
(它看到do\r
而不是do
)。使用工具将其转换为 Unix 文本文件
dos2unix
,或确保您的编辑器将其保存为 Unix 文本文件。我刚刚在我的 centos 机器上执行了相同的脚本,它可以工作文件。正如 Kusalananda 所建议的,将脚本文件从 dos 转换为 unix。如果您尚未安装 dos2unix 软件包,请安装它。然后你可以使用下面的命令来转换 $dos2unix (文件名)
更好的循环方式是:
这样您就不必指定所有这些数字。那么,如果您必须使用您的方法遍历 100 个数字,您会怎么做?