(./runalg: строка 25: синтаксическая ошибка рядом с неожиданным токеном 'set') в оценке среднего захоронения

Я тестирую алгоритм стерео в оценке MiddleBury. Я использую cygwin в Windows для запуска программы.

После компиляции инструментов я запустил код. Согласно руководству, мне нужно написать следующее"

./runalg

Но он говорит:

$ ./runalg -bash: ./runalg: /bin/csh: плохой интерпретатор: нет такого файла или каталога

Итак, я изменился, как

баш ./руналг.

В данном случае ошибка заключалась в следующем.

$ баш ./runalg

./runalg: строка 25: синтаксическая ошибка рядом с неожиданным токеном `set'

./runalg: строка 25: `if ($#argv > 3) установить суффикс = $4'**

Есть ли кто-нибудь, кто может посоветовать мне, как использовать эту оценку и почему возникла эта проблема?


person Only    schedule 23.08.2016    source источник


Ответы (1)


Оболочки типа csh и bash/ksh имеют совершенно другой синтаксис. За исключением очень простых команд, вы не сможете получить совместимость, просто изменив интерпретатор.

Если бы у вас был скрипт bash и интерпретатор ksh, несколько адаптаций могли бы заставить скрипт работать в большинстве случаев, но здесь ни за что!

бывший в ЧШ:

set suffix = $4

перевел бы на

suffix=$4

(или, может быть, export suffix=$4 я не знаю точного распространения переменных в csh, но это не главное)

Лучший способ — установить csh в Cygwin.

Согласно этому форуму, оболочка C не установлена ​​по умолчанию в Cygwin. Запустите программу установки, выберите коллекцию пакетов «Shells» и выберите csh для установки.

person Jean-François Fabre    schedule 23.08.2016
comment
Спасибо. Это было решено после установки csh в cygwin. - person Only; 23.08.2016
comment
Большое спасибо, вы сэкономили мне хотя бы несколько часов. - person Arnas Ivanavičius; 19.09.2016
comment
Пожалуйста. Я рад, что это полезно для некоторых! Это базовые знания, но только для людей, которые знают, в чем проблема :) - person Jean-François Fabre; 19.09.2016