Jenkins Pipeline脚本报错:unexpected token: } 求助
错误原因分析及修正方案
你的Pipeline脚本出现编译错误,核心问题是在steps块中直接编写Shell命令,没有通过Jenkins Pipeline提供的sh步骤包裹,Groovy解析器无法识别裸写的Shell命令,从而抛出语法错误。
具体问题点:
cd /var/jenkins_home/p4/tools/ansible/DL/app/scripts/:Jenkins DSL中没有原生的cd步骤,需要用sh执行Shell的cd命令,或者更推荐用dir步骤切换目录(Pipeline规范写法)。PYTHONPATH=shared python app_service_check.py -y 2023 -e test -p pc:同样属于Shell命令,必须用sh包裹才能被Jenkins正确执行。
修正后的脚本:
pipeline { agent { label 'test-deploy01' } stages { stage ('Change Directory') { steps { // 方式1:用sh执行cd命令(注意:单命令cd仅在当前sh会话生效,后续步骤需重新切换) // sh 'cd /var/jenkins_home/p4/tools/ansible/DL/app/scripts/' // 方式2:用dir步骤切换目录,后续步骤默认在此目录下执行(更规范) dir('/var/jenkins_home/p4/tools/ansible/DL/app/scripts/') { // 可在此添加需在该目录执行的后续命令 } } } stage ('Blaze Healthcheck') { steps { sh 'PYTHONPATH=shared python app_service_check.py -y 2023 -e test -p pc' } } } }
额外说明:
如果使用sh 'cd ...',该目录切换仅在当前sh命令的会话中有效,后续steps若需在该目录执行命令,需重新切换;而dir步骤会让其内部所有步骤都在指定目录下执行,是Pipeline中切换工作目录的标准用法。
内容的提问来源于stack exchange,提问作者New2Python
相关产品推荐
相关产品推荐

