bash IF 语句不起作用 - 出现错误

bash IF statement doesn't work - getting error

我正在尝试在 bash 中编写简单的 IF 语句,但无论我尝试什么,我总是得到错误,那根本不应该上升,有人可以看看我的代码并告诉我做错了什么?

#!/bin/bash
echo "Checking..."
echo
if [ -f /var/www/git/repos/last_change.txt ];
    then
    echo "/var/www/git/repos/last_change.txt exists."
        cd /var/www &&
        git fetch --all &&
        git reset --hard origin/develop &&
        rm -f "/var/www/git/repos/last_change.txt"

fi;
echo
echo "...done."

我总是得到错误:

root@machine:/var/www/git/repos# sh check.sh
Checking...
: not found: 3: check.sh: echo
check.sh: 12: check.sh: Syntax error: "fi" unexpected (expecting "then")

一切似乎都还好吧?

很高兴能得到任何帮助,谢谢。

根据错误描述判断,您的文件很可能使用了 DOS 换行符 (CRLF)。 sh 需要 UNIX 换行符 (LF)。使用 dos2unix your_file_name.sh.

转换文件