D.Jones
D.Jones

Reputation: 155

Syntax error when running bash script in Homestead Vagrant

I'm trying to run a script in Vagrant (vagrant ssh), however I am getting the error below:

tests/unit/runTests.sh: 4: tests/unit/runTests.sh: Syntax error: "(" unexpected

Command: sh tests/unit/runTests.sh

The script runs fine outside for vagrant and the only script info I've been able to find about vagrant are related to provisions, which is not what I'm doing in this case.

Script:

#!/bin/bash
i=0
fails=()

for d in tests/unit/*/ ; do
    eval "vendor/bin/peridot -c tests/unit/peridot.php $d"

    if [ $? -eq 1 ]
        then
            fails[$i]=$d
    fi
    wait
done

for ((j=0; j < ${#fails[@]}; j++)) do
    echo "${fails[$j]}"
done

I've read about "(" syntax errors being related to dash, but I am using the suggestions that those posts had (#!/bin/bash).

Thanks for any suggestions.

Upvotes: 1

Views: 224

Answers (1)

Vrata Blazek
Vrata Blazek

Reputation: 464

Command: sh tests/unit/runTests.sh

It means that you (vagrant) is trying to run your script in 'sh', not in 'bash'. In this case, the first line (#!/bin/bash) is ignored and 'sh' interpret doesn't expect '(' character.

Upvotes: 3

Related Questions