Cygwin 运行FreeTDS配置文件时出现语法错误

Cygwin 运行FreeTDS配置文件时出现语法错误,cygwin,freetds,Cygwin,Freetds,我正在尝试运行RubyonRails并连接到MS SQL数据库。我已经安装了RoR,并且已经创建了要连接的数据库。我创建并测试了这个模型,在尝试$rake db:migrate时,我得到了一个rake中止错误(没有这样的文件要加载——tiny_tds)。 此时,我下载并解压缩了FreeTDS。当我提交$/时,请配置出现的问题 以下是命令和产生的错误消息(Windows 7 Pro操作系统上的Cygwin终端): 这是FreeTDS配置文件(第19-33行)中的代码: 错误消息中的这一行: '/c

我正在尝试运行RubyonRails并连接到MS SQL数据库。我已经安装了RoR,并且已经创建了要连接的数据库。我创建并测试了这个模型,在尝试$rake db:migrate时,我得到了一个rake中止错误(没有这样的文件要加载——tiny_tds)。 此时,我下载并解压缩了FreeTDS。当我提交$/时,请配置出现的问题

以下是命令和产生的错误消息(Windows 7 Pro操作系统上的Cygwin终端):

这是FreeTDS配置文件(第19-33行)中的代码:


错误消息中的这一行:

'/configure: line 31: `;;
在行首有
字符,因为它所抱怨的标记中实际上有一个返回字符:
\r

configure
脚本具有Windows样式的CR-LF行结尾,shell无法识别;它需要Unix样式的LF行结尾,并将CR视为普通字符,从而导致语法错误

使用
dos2unix
过滤
configure
脚本,将其转换为Unix样式的行尾


确保先阅读
dos2unix
手册页;与大多数文本过滤器不同,默认情况下,它会覆盖其输入文件。

已解决!!最初我用Winzip解压了freetds下载。在努力解决上述问题后,我删除了下载。重新下载,然后使用UNIX命令提取。现在一切正常

    if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh

  NULLCMD=:

  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which

  # is contrary to our usage.  Disable this feature.

  alias -g '${1+"$@"}'='"$@"'

  setopt NO_GLOB_SUBST

else

  case `(set -o) 2>/dev/null` in #(

  *posix*) :

    set -o posix ;; #(

  *) : 

    ;;

esac

fi
'/configure: line 31: `;;