意外标记“附近出现语法错误”;(“在bash中声明数组时
我必须在我的一些耳朵上做一些maven测试 我想编写一个shell脚本来自动化这个过程,而不是手动执行 这就是我所拥有的:意外标记“附近出现语法错误”;(“在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
#!/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:谢谢你的评论,我编辑了我的答案。