Jenkins上使用expect脚本实现发布物上传SVN遇到字符集问题

Jenkins上使用expect脚本实现发布物上传SVN遇到字符集问题

编写一个expect脚本实现发布物上传到svn的功能比较简单,可能需要注意一点就是增加文件替换功能,其核心步骤有4步:

bash 复制代码
#从SVN指定路径下载内容
spawn svn co "$svndir"
#先删除掉已经存在的内容
svn delete $file 
#再加入新的文件
svn add --no-ignore --force $file
#最后提交
spawn svn ci -m "$msg"

但关键问题在于,脚本在mac上调试的好好的,放到jenkins的shell中执行就卡住,百思不得其解。

最后偶然间发现,jenkins中调用expect脚本,控制台输出是这样的:

spawn svn co http://192.168.x.x/V1.2.4/iOS/Build01 认证领域:
http://192.168.x.x:80 Subversion repository

但是在mac上调试脚本的时候,输出是这样的:

spawn svn co http://192.168.x.x/V1.2.4/iOS/Build01 Authentication

realm: http://192.168.x.x:80 Subversion repository

才意识到,这可能是个字符集的问题,分别在jenkins的shell中打印$LANG

输出为zh_CN.UTF-8, 而mac上shell打印该变量,输出结果为en_US.UTF-8。

至此,确定这是个字符集问题。

解决办法就比较简单了,在shell中执行的时候将字符集统一为调试脚本的字符集即可,问题解决,记之。

相关推荐
果壳~13 分钟前
Docker镜像离线迁移:从下载到本地部署完整实战指南
运维·docker·容器
feng68_14 分钟前
Web服务基础理论
linux·运维·服务器·web服务
打码人的日常分享14 分钟前
双碳智慧园区建设方案(PPT)
大数据·运维·网络·云计算·制造
许愿OvO26 分钟前
Tomcat部署与Nginx整合实战
运维·nginx·tomcat
柳鲲鹏37 分钟前
LINUX下载编译libosmscout
linux·运维·服务器
学不完的1 小时前
Nginx
linux·运维·nginx·运维开发
Joren的学习记录1 小时前
【Linux运维大神系列】k8s项目部署实战
linux·运维·kubernetes
杰克崔1 小时前
android的lmkd的实现及代码分析
android·linux·运维·服务器·车载系统
BullSmall1 小时前
从2026年春晚 详细分析未来IT行业的发展
linux·运维·服务器·数据库
星融元asterfusion1 小时前
打破“黑盒”:RoCE小工具为RDMA网络运维带来可视化曙光
运维·rdma·会话追踪