unexpected near error cygwin syntax-error token biometrics

cygwin - syntax error near unexpected token `$'' do r



error de sintaxis cerca del token inesperado `$ ''en / r'' '' (5)

Dile a Cygwin bash que ignore los caracteres CR:

set -o igncr

(de https://stackoverflow.com/a/14607651/1098603 )

Tenga en cuenta que igncr es específico de Cygwin y fallará en Linux, como lo indica @KeithThompson.

Estoy tratando de compilar el software de imagen biométrica NIST, y he tenido problemas todo el día. Finalmente obtuve la fuente comprobada correctamente, e instalé cygwin sin problemas (lo he usado en el pasado), pero cuando fui a compilar, recibí este error:

$ 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

Ahora estoy seguro de que cualquier codificador avanzado se dirigiría a setup.sh y buscaría problemas, pero no soy muy codificador (solo estoy compilando esto porque no hay paquetes precompilados) así que no lo hago. No sé qué hacer. No instalé ninguna biblioteca con cygwin, simplemente dejé todo por defecto. Estoy tratando de seguir el manual de NBIS, pero realmente no lo entiendo tan bien y estoy luchando muy mal. Maybye echándole un vistazo puede que notes algo que eché de menos: http://www.nist.gov/customcf/get_pdf.cfm?pub_id=51097


Para convertir setup.sh en terminaciones de línea Unix en Cygwin, use

dos2unix setup.sh


Una forma sencilla de convertir el archivo example.sh a unix es usar NotePad ++ (Edición> Conversión EOL> Formato UNIX / OSX)

También puede configurar el EOL predeterminado en notepad ++ (Configuración> Preferencias> Nuevo documento / Directorio predeterminado> seleccione Unix / OSX en el cuadro Formato)


Windows usa dos caracteres (CR y LF, o /r/n ) para marcar el final de una línea en un archivo de texto. Unix, Linux y (por defecto) Cygwin usan un solo LF o un carácter ''/ n''. Algunas herramientas de Cygwin son capaces de manejar cualquier formato, pero generalmente no pueden hacerlo.

Parece que setup.sh usa finales de línea de estilo Windows, o al menos la línea 94 lo hace.

No encontré la descarga de las fuentes, pero si se distribuyen como un archivo comprimido, es posible que deba extraerlas con el comando de unzip Cygwin con la opción -a , para que las terminaciones de línea se conviertan automáticamente.

Pero sospecho que hay más que eso. El archivo distribuido setup.sh no debería haber tenido terminaciones de línea estilo Windows en primer lugar, y si lo hiciera, no sé por qué el problema no se mostraría hasta la línea 94.

Si puedes publicar la URL de la descarga de origen, echaré un vistazo a setup.exe .


correr

sed -i ''s//r//'' setup.sh

para arreglar sus finales de linea