Ответ 1
Чтобы преобразовать setup.sh
в конец строки Unix в Cygwin, используйте
dos2unix setup.sh
Я пытаюсь скомпилировать 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
Чтобы преобразовать setup.sh
в конец строки Unix в Cygwin, используйте
dos2unix setup.sh
run
sed -i 's/\ r//' setup.sh
чтобы исправить окончание строки
Легкий способ конвертировать файл example.sh в unix - использовать NotePad ++ (Edit > EOL Conversion > UNIX/OSX Format)
Вы также можете установить EOL по умолчанию в блокнот ++ (Настройки > Настройки > Новый документ/Каталог по умолчанию > выберите Unix/OSX в поле "Формат" )
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
.