在Homestead Vagrant中运行bash脚本时出现语法错误

时间:2016-04-25 19:19:33

标签: bash shell vagrant homestead

我正在尝试在Vagrant(vagrant ssh)中运行脚本,但是我收到以下错误:

tests / unit / runTests.sh:4:tests / unit / runTests.sh:语法错误:“(”意外

命令:sh tests / unit / 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 / bash)。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:3)

  

命令:sh tests / unit / runTests.sh

这意味着你(流浪汉)试图在&#39; sh&#39;中运行你的脚本,而不是在&#39; bash&#39;中。在这种情况下,第一行(#!/ bin / bash)被忽略并且&#39; sh&#39;解释并不期望&#39;(&#39;字符。