找不到命令 - 当每个参数都在新行上时

command not found - when every param on new line

在 bash 文件中 myBuildAndJacoco.sh:

mvn -Pcommon,coverage 
clean 
org.jacoco:jacoco-maven-plugin:prepare-agent 
install 
-Dmaven.test.failure.ignore=true
-Dclient.version=0.2-SNAPSHOT 
-Djacoco.outputDir=${WORKSPACE}/target 

但是当我 运行 它时我得到错误:

./myBuildAndJacoco.sh: line 12: clean: command not found
./myBuildAndJacoco.sh: line 14: org.jacoco:jacoco-maven-plugin:prepare-agent: command not found
./myBuildAndJacoco.sh: line 15: -Dmaven.test.failure.ignore=true: command not found
./myBuildAndJacoco.sh: line 16: -Dclient.version=0.2-SNAPSHOT: command not found
./myBuildAndJacoco.sh: line 17: -Dngnms.version=-SNAPSHOT: command not found
./myBuildAndJacoco.sh: line 18: -Djacoco.outputDir=/target: No such file or directory

我需要将所有这些参数拆分到新行。

bash 脚本 运行 将写在新行上的所有内容视为新命令的一部分。

例如当运行宁这个代码

mvn -Pcommon,coverage 
clean

它将 mvn ... 视为一个命令,将 clean 视为另一个命令。为了防止它,您可以使用 \ 和每行的末尾。例如

mvn -Pcommon,coverage \
clean

同样你的整个代码应该是

mvn -Pcommon,coverage \
clean \
org.jacoco:jacoco-maven-plugin:prepare-agent \
install \
-Dmaven.test.failure.ignore=true \
-Dclient.version=0.2-SNAPSHOT \
-Djacoco.outputDir=${WORKSPACE}/target
WORKSPACE="wahtever"

OPTS=()
OPTS+=("-Pcommon,coverage") 
OPTS+=("clean") 
OPTS+=("org.jacoco:jacoco-maven-plugin:prepare-agent") 
OPTS+=("install") 
OPTS+=("-Dmaven.test.failure.ignore=true")
OPTS+=("-Dclient.version=0.2-SNAPSHOT") 
OPTS+=("-Djacoco.outputDir=${WORKSPACE}/target")
# mvn "${OPTS[@]}" 
echo mvn "${OPTS[@]}" 


mvn -Pcommon,coverage clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true -Dclient.version=0.2-SNAPSHOT -Djacoco.outputDir=wahtever/target