Подтвердить что ты не робот

Синтаксическая ошибка около неожиданного токена `$ 'в\r' '

Я пытаюсь скомпилировать NIST Biometric Image Software, и у меня были проблемы целый день. Я, наконец, получил исходный код, и я установил 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

Теперь я уверен, что любой продвинутый кодер отправится в setup.sh и будет искать проблемы, но я не очень-то кодер (я только компилирую это, потому что нет предварительно скомпилированных пакетов), поэтому Я не знаю, что делать. Я не устанавливал никаких библиотек с cygwin, я просто оставил все по умолчанию. Я пытаюсь следовать руководству NBIS, но я не очень хорошо понимаю это, и поэтому я плохо борюсь. Maybye, взглянув на него, вы можете заметить что-то, чего я пропустил: http://www.nist.gov/customcf/get_pdf.cfm?pub_id=51097

4b9b3361

Ответ 1

Чтобы преобразовать setup.sh в конец строки Unix в Cygwin, используйте

dos2unix setup.sh

Ответ 2

run

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

чтобы исправить окончание строки

Ответ 3

Легкий способ конвертировать файл example.sh в unix - использовать NotePad ++ (Edit > EOL Conversion > UNIX/OSX Format)

Вы также можете установить EOL по умолчанию в блокнот ++ (Настройки > Настройки > Новый документ/Каталог по умолчанию > выберите Unix/OSX в поле "Формат" )

Ответ 4

Windows использует два символа (CR и LF, или \r\n), чтобы пометить конец строки в текстовом файле. Unix, Linux и (по умолчанию) Cygwin использует один символ LF или '\n'. Некоторые инструменты Cygwin могут иметь дело с любым форматом, но sh обычно не может.

Похоже, что setup.sh использует концы строк в стиле Windows - или, по крайней мере, строка 94.

Я не нашел загрузку для источников, но если они распространяются как zip файл, вам может понадобиться извлечь их с помощью команды Cygwin unzip с параметром -a, поэтому любые окончания строк будут автоматически преобразуется.

Но я подозреваю, что это больше, чем это. В распределенном файле setup.sh не должно было быть никаких окончаний строк в стиле Windows, и если бы это произошло, я не знаю, почему проблема не появится до строки 94.

Если вы можете опубликовать URL-адрес для загрузки исходного кода, я посмотрю setup.exe.