我正在为备份设置一些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")
答案 0 :(得分:1)
您的脚本中包含CR。使用dos2unix
进行修复。