我一直在尝试编写一个 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
或者直接创建一个新脚本并自行复制/粘贴上述内容吗?