Search code examples
cygwinstereo-3d

(./runalg: line 25: syntax error near unexpected token 'set' )in Middle bury evaluation


I am testing stereo algorithm in MiddleBury evaluation. I am using cygwin in Windows to run the program.

After compiling tools, I have run the code. According to the guide, I need to write as follows"

./runalg

But it says:

$ ./runalg -bash: ./runalg: /bin/csh: bad interpreter: No such file or directory

So, I have changed like

bash ./runalg.

In this case, the error was as follows.

$ bash ./runalg

./runalg: line 25: syntax error near unexpected token `set'

./runalg: line 25: `if ($#argv > 3) set suffix = $4'**

Is there anyone, who can advice me how to use this evaluation and why this problem was occurred?


Solution

  • csh and bash/ksh-type shells have a totally different syntax. Except for very simple commands, you won't be able to get compatibility just by changing the interpreter.

    If you had bash script and ksh interpreter, a few adaptations could make the script work in most cases but here no way!

    ex in csh:

    set suffix = $4
    

    would translate to

    suffix=$4
    

    (or maybe export suffix=$4 I don't know the exact variables propagations in csh but that's not the point)

    The best way is to actually install csh in Cygwin.

    According to this forum, the C Shell is not installed by default in Cygwin. Startup the Setup program and select the "Shells" collection of packages and select csh for installation.