\ r''中意外标记"$"附近的语法错误

Dav*_*vid 40 cygwin biometrics syntax-error token

我正在尝试编译NIST生物识别图像软件,我整天都遇到了麻烦.我终于检查了源代码,我安装了cygwin没有问题(我以前使用过它),但是当我去编译时,我收到了这个错误:

 $  sh setup.sh </cygdrive/c/NBIS> [--without-X11]
 setup.sh: line 94: syntax error near unexpected token `$'in\r''
 'etup.sh: line 94: `    case $1 in
Run Code Online (Sandbox Code Playgroud)

现在我确定任何高级编码器都会前往setup.sh并寻找问题,但我并不是一个真正的编码器(我只是编译它,因为没有预编译的包)所以我不喜欢我不知道该怎么做.我没有用cygwin安装任何库,我只是将所有内容都保留为默认值.我正在尝试遵循NBIS手册,但我并不是那么理解,所以我很难挣扎.Maybye看一看你可能会注意到我错过的东西:http://www.nist.gov/customcf/get_pdf.cfm?pub_id = 51097

Jen*_*ens 53

setup.sh在Cygwin上转换为Unix行结尾,请使用

dos2unix setup.sh
Run Code Online (Sandbox Code Playgroud)


Fra*_*ard 34

sed -i 's/\r//' setup.sh
Run Code Online (Sandbox Code Playgroud)

修复你的行尾


Eft*_*ari 15

将example.sh文件转换为unix的简便方法是使用NotePad ++(编辑> EOL转换> UNIX/OSX格式)

您也可以在记事本++中设置默认EOL(设置>首选项>新建文档/默认目录>在格式框下选择Unix/OSX)

  • 谢谢,为我工作。我在 Windows 10 的 Linux Ubuntu 子系统上编译 Shell 脚本时遇到了这个问题,但在 notepad++ 中键入命令而不是 vim 或通过 nano 键入命令。 (2认同)

Dan*_*ler 9

在 pycharm 中,您可以通过单击CRLF屏幕右下方的字母并选择LF.

pycharm 行结束位置


Kei*_*son 8

Windows使用两个字符(CR和LF,或\r\n)来标记文本文件中行的结尾.Unix,Linux和(默认情况下)Cygwin使用单个LF或'\n'字符.一些Cygwin工具能够处理这两种格式,但通常不能.

它看起来像是setup.sh使用Windows风格的行结尾 - 或者至少使用第94行.

我没有找到源代码的下载,但是如果它们作为zip文件分发,您可能需要使用unzip带有-a选项的Cygwin 命令来提取它们,因此任何行结尾都会自动转换.

但我怀疑它还有更多.分布式setup.sh文件首先不应该有任何Windows样式的行结尾,如果是,我不知道为什么问题不会出现在第94行之前.

如果你可以发布源代码下载的URL,我会看看setup.exe.