获取语​​法错误:" fi"在shell脚本中意外(期待"然后")

时间:2017-07-30 02:12:37

标签: linux bash shell if-statement

我正在为备份设置一些shell脚本。一切都很好,但是当我使用if then语句时,我会收到语法错误。

查看https://www.tutorialspoint.com/unix/if-else-statement.htm他们使用一个简单的if语句在网站上运行,因为它有一个try it pop部分。当我将内容复制到保存为.sh的文件并在我的ubuntu服务器(16.04.2 x64)上尝试时,我得到语法错误:" fi"意外的(期待"然后")

网站上的代码位于

之下
#!/bin/sh
a=10
b=20

if [ $a == $b ]
then
   echo "a is equal to b"
else
   echo "a is not equal to b"
fi

要在终端上运行我使用

sh /path/to/file/script.sh

有几个问题被问及回答,但似乎没有一个问题与我的案例相同。我需要在服务器上更新一些内容吗?如果我使用bash而不是sh它会说出意外的令牌。有人有这个问题吗?

如果它有帮助,当我在终端中运行时,它似乎不喜欢空格,完全错误在下面

sh /var/www/check-day.sh
: not foundeck-day.sh: 4: /var/www/check-day.sh:
/var/www/check-day.sh: 10: /var/www/check-day.sh: Syntax error: "fi" 
unexpected (expecting "then")

1 个答案:

答案 0 :(得分:1)

您的脚本中包含CR。使用dos2unix进行修复。