0

我有脚本:

#!/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 行:文件意外结束。我做错了什么?

4

1 回答 1

2

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

于 2013-02-01T09:44:07.397 回答