我尝试在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")
一切似乎都没问题,对吧?
我很高兴有任何帮助,谢谢。
答案 0 :(得分:3)
根据错误描述判断,您的文件很可能使用DOS换行符(CRLF)。 sh
期望UNIX换行符(LF)。使用dos2unix your_file_name.sh
转换文件。