[Jenkins]运行shell报错:寻找匹配的 `"' 是遇到了未预期的文件结束符

这里有一个坑(至少对于我来说):

报错信息中的出错行,并不代表真实脚本中的出错行.

jenkins执行的shell内容如下:

第1行echo 1个字符串,少1个双隐号

echo "233342
echo "12312"
echo "34"

执行jenkins报错如下:

/usr/local/tomcat/apache-tomcat-8.5.40/temp/jenkins5082891078041588552.sh:行4: 寻找匹配的 `"‘ 是遇到了未预期的文件结束符
Build step ‘执行 shell‘ marked build as failure
Finished: FAILURE

可以看到错信息显示的是行4,但是并没有行4.我是这样理解的,jenkins(bash)发现 第1行缺少双隐号之后,一直寻找到了shell脚本末尾,也没有找到匹配的双隐号,所以这里的行4,指的是,我已经找到文件末尾了,都没有匹配到双隐号,你这个脚本是有问题的,你自己去找到底是哪一行双隐号少了吧.

按照我以前调试python程序的经验,编译器执行出一段代码,代码出现语法错误时,编译器会抛出具体位置.(大部分情况下)
但是显示这个经验不适用于调试shelle脚本.

所以下次执行shell遇到这个问题,就仔仔细细去检查有双隐号的代码吧

[Jenkins]运行shell报错:寻找匹配的 `"' 是遇到了未预期的文件结束符

原文地址:https://www.cnblogs.com/kaerxifa/p/12143680.html

时间: 2024-10-09 02:12:33

[Jenkins]运行shell报错:寻找匹配的 `"' 是遇到了未预期的文件结束符的相关文章

shell 报错'@'localhost' (using password: YES)'root

shell中写了简单的一段 energy.sh内容: #!/bin/bash host=127.0.0.1 user=****** passwd=****** dbname=****** tablename=device_value_300sct007p01_year MONTH=$(date +%Y-%m) sqlstr="insert into device_value_300sct007p01_year (id,year,month,device_id,device_value_id,va

[Python] 运行Flask, 报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 33: ordinal not in range(128)

运行时报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 33: ordinal not in range(128) Python2.7在Windows上一个bug!!! 解决方法: 参考官方patch: http://bugs.python.org/file19332/9291a.patch 如下代码:一,加入from itertools import count: 二,修改 def enum_type

windows7旗舰版64位下安装、破解及运行QTP11报错

说明:如果你出现了以下几种情况,希望能解决你的问题:如果没有,就当路过. 1.安装qtp11时报vc++ 2005缺少,但怎么也不能成功安装 解决方法: 1.找到qtp安装包里面的vc++ 2005组件 QuickTest\CHS\prerequisites\vc2005_sp1_redist. 2.运行vcredist_x86.exe文件,如果安装失败,修改后缀名为压缩文件,如:zip.rar,解压文件后重新运行解压后的文件. 2.网上介绍用mgn-mqt82.exe的方法破解qtp11失败

在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错

在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错 解决方法: 或是都设置为yes.. Build Active Architecture Only的意思是只生成适应的指令集 在ios7真机上和iOS6模拟器上运行是好的,而在iOS6真机上运行却报错,码迷,mamicode.com

NetBeans运行项目报错

1.错误描述 严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/FoundationDatabase]] at org.apache.catalina.util.LifecycleBase.start(Lifecy

jenkins配置SVN报错

jenkins配置SVN报错,如图: 原因:jenkins找不到https路径. 解决:点击下面的“enter credential”,跳转到“Subversion Authentication”页面,输入svn的用户名和密码即可.

应用在vs的ide调试环境下运行顺利,但是在bin目录直接运行exe报错的问题

在项目中需要获取摄像头的实时视频,因为不想安装第三方的安装文件来实现,经过筛选找到了easydarwin中的libEasyPlayer. 我们的项目语言是C#,libEasyPlayer的语言是C++的,在ide调试环境下通过dllimport方法直接调用libEasyPlayer很成功,视频顺利显示.但是在本机直接运行exe居然报错. 网上查资料,解决的办法有: 1.通过管理员身份打开cmd运行netsh winsocket reset命令. 结果:没有用. 2.dll版本的问题 通过vs自带

debug运行下报错,但不影响运行ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2(转)

eclipse 3.4+jdk1.6 编译正常通过,运行debug模式时报错 ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820] 查找该错误原因.发现是重定向输出的问题. 以下是网络资料原文 装jdk1.6了把,呵呵- 我也碰到过这

运行Tomcat报错 解决方法

运行Tomcat报错 解决方法 运行Tomcat控制台报错: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/jdk1.6.0_26/jre/lib/i386/server:/usr/local/jdk1.6.0_26/jre/lib/i3