shell脚本中出现意外的文件结尾

shell脚本中出现意外的文件结尾,shell,Shell,我有剧本: #!/bin/sh PSQLPATH=$1 USER=$2 if [ -z ${PSQLPATH} ]; then echo "incorrect path param" echo "Usage: $0 psqlpath username" exit 1 fi if [ -z ${USER} ]; then echo "incorrect username param" echo "Usage: $0 psqlpath username" exit

我有剧本:

#!/bin/sh
PSQLPATH=$1
USER=$2
if [ -z ${PSQLPATH} ]; then
   echo "incorrect path param"
   echo "Usage: $0 psqlpath username"
   exit 1
fi
if [ -z ${USER} ]; then
   echo "incorrect username param"
   echo "Usage: $0 psqlpath username"
   exit 1
fi
${PSQLPATH}/createdb -h localhost -U ${USER} highway2
${PSQLPATH}/psql -f createDatatable.sql -h localhost -d highway2 -U ${USER}
${PSQLPATH}/psql -f insertStatements.sql -h localhost -d highway2 -U ${USER}
echo "execute passed"
exit 0

当我试图像./script.sh那样执行它时,我得到了一个错误行19:文件意外结束。我做错了什么?

检查你的行尾。当我运行脚本(在Cygwin下)时,没有给出任何参数,如果我有Windows样式的行尾(
\r\n
)。当我使用Unix风格的行结束符时,通过删除
\r
s,脚本会运行,并抱怨我没有给出正确的参数。

根据我使用bash的经验,如果您有一些小语法问题,就会出现此错误。我正试图找到它,但我无法确定您是否在Cygwin中工作?是的!从窗口。但是用ubuntuYou连接ssh到主机是天才!我正在用sublime编辑这段代码,所以我转到了
视图->行尾->unix风格
。非常感谢你@基里巴扎罗夫很乐意帮忙!