意外标记‘fi’附近出现语法错误

意外标记‘fi’附近出现语法错误

我一直在尝试编写一个 while 循环 bash 脚本,用于检查两个目录的大小,并将其回显到 www 文件夹中的文本文件中。在我的 while 循环顽固地拒绝工作之后,我决定简化它以确保我可以使用基本的“if 语句”来工作,但由于某种原因,经过几个小时的挫折,即使使用最基本的 if 语句,它也无法工作。知道我遗漏了什么吗?

echo "hello World"
#
a=1
b=2
echo "A: $a"
echo "B: $b"
if [ "$a" -eq "$b" ];
then
echo "equal"
else
echo "Not equal"
fi

每次运行该程序时,都会出现此错误:

test.sh:第 12 行:意外标记“fi”附近出现语法错误

test.sh: 第 12 行:`fi'

如果我在文件末尾放置“exit”或“done”,它会告诉我文件意外结束。

非常感谢!

答案1

我复制粘贴了你的脚本并通过 bash 运行它并得到了预期的输出:

$ bash test1.sh
hello World
A: 1
B: 2
Not equal
$ cat test1.sh     
echo "hello World"
#
a=1
b=2
echo "A: $a"
echo "B: $b"
if [ "$a" -eq "$b" ];
then
echo "equal"
else
echo "Not equal"
fi

也许您在 fi 后面多了一个换行符或类似的东西?您可以检查一下,cat -v或者直接创建一个新脚本并自行复制/粘贴上述内容吗?

相关内容