bash IF语句不起作用 - 得到错误

时间:2015-01-30 11:31:22

标签: bash

我尝试在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")

一切似乎都没问题,对吧?

我很高兴有任何帮助,谢谢。

1 个答案:

答案 0 :(得分:3)

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