意外标记“附近出现语法错误”;(“在bash中声明数组时

意外标记“附近出现语法错误”;(“在bash中声明数组时,bash,maven,syntax-error,Bash,Maven,Syntax Error,我必须在我的一些耳朵上做一些maven测试 我想编写一个shell脚本来自动化这个过程,而不是手动执行 这就是我所拥有的: #!/bin/bash projects = ("MAIN_EAR", "EJB_EAR", "SIT_EAR", "ENC_EAR", "ENVIRONMENT_EAR", "PRESS_EAR") myenvs = ("dev", "cart") for prj in "${projects[@]}" do : for myenv in "${my

我必须在我的一些耳朵上做一些maven测试

我想编写一个shell脚本来自动化这个过程,而不是手动执行

这就是我所拥有的:

#!/bin/bash
projects = ("MAIN_EAR", "EJB_EAR", "SIT_EAR", "ENC_EAR", "ENVIRONMENT_EAR", "PRESS_EAR")

myenvs  = ("dev", "cart")

for prj in "${projects[@]}"
do
    :
    for myenv in "${myenvs[@]}"
    do
       :
       mvn –am –pl "../$prj" clean package –Denvironment=$myenv
    done
done
这是输出:

back@slash-PC:~/workspace/WSP$ bash maven_tests.sh
maven_tests.sh: line 2: Syntax error near unexpected token "("
maven_tests.sh: line 2: `projects = ("MAIN_EAR", "EJB_EAR", "SIT_EAR", "ENC_EAR", "ENVIRONMENT_EAR", "PRESS_EAR")
bash似乎不喜欢我声明数组的方式

我错过了什么



如果有用的话:我在Xubuntu 14.04 x64上,特别是在声明BASH数组时出现了一些语法错误。(数组声明中
=
周围的空格和数组元素之间使用逗号)

请尝试以下代码:

#!/bin/bash
projects=("MAIN_EAR" "EJB_EAR" "SIT_EAR" "ENC_EAR" "ENVIRONMENT_EAR" "PRESS_EAR")

myenvs=("dev" "cart")

for prj in "${projects[@]}"; do
    for myenv in "${myenvs[@]}"; do
       mvn –am –pl "../$prj" clean package –Denvironment="$myenv"
    done
done

在bash中定义变量时,
=
周围不能有空格。此外,数组元素用空格分隔,而不是用
分隔。您必须使用例如

myenvs=("dev" "cart")

初学者的错误:P非常感谢!@anubhava,编辑你的答案以指出语法错误-等号周围的空格。@EldadAK:谢谢你的评论,我编辑了我的答案。