You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本逐行书写mvn参数报command not found错误解决

报错原因

Bash 默认以换行符作为单条命令的结束判定标识,未加续接标记直接将mvn命令的参数拆分到独立新行时,Shell 会将第一行的mvn -Pcommon,coverage识别为完整命令单独执行,后续每一行的内容都会被当作独立的新命令解析,因此触发「command not found」类报错。

修正方案

长Shell命令拆分多行书写时,需要在除最后一行外的每一行末尾添加反斜杠\作为行续接标记,注意反斜杠必须是该行的最后一个字符,后面不能夹带空格、注释等内容,否则续接逻辑会失效。
修正后的可正常执行的脚本代码如下:

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
优化建议
  • 续接换行后的参数可以添加统一缩进对齐,不会影响命令执行逻辑,同时能大幅提升长命令的可读性,示例:
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
  • 写完脚本后可以先执行bash -n myBuildAndJacoco.sh做语法校验,确认没有语法问题再正式执行。

内容的提问来源于stack exchange,提问作者Alexei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:45:46