2016-04-25 3 views
1

Я пытаюсь запустить скрипт в Vagrant (бродяга SSH), но я получаю ошибку ниже:Синтаксическая ошибка при запуске Баш скрипт в Homestead Vagrant

тесты/блока/runTests.sh: 4: тесты /unit/runTests.sh: Синтаксическая ошибка: «(» неожиданный

Команда: Sh тесты/блок/runTests.sh

скрипт прекрасно работает вне для бродяг и только информации сценария, я был в состоянии найти о бродягах связаны с положениями, что не является тем, что я делаю в этом случае.

Автор сценария:

#!/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 

Я прочитал о «(» синтаксические ошибки имеющие отношение к тире, но я использую предложения, что эти должности должны были (#/bin/Баш!).

Спасибо за любые предложения.

ответ

3

Command: sh tests/unit/runTests.sh

Это значит, что вы (бродяга) пытаетесь запустить свой скрипт в 'sh', а не в 'bash'. В этом случае первая строка (#!/Bin/bash) игнорируется, а интерпретация «sh» не ожидает »(« символ »

+1

... потому что оболочка Bourne или спецификация языка POSIX sh не поддержка массивов. – Cyrus

Смежные вопросы