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中执行的时候将字符集统一为调试脚本的字符集即可,问题解决,记之。

相关推荐
Hunter_pcx3 分钟前
ubuntu:内存假泄漏
linux·运维·服务器·开发语言·c++·人工智能·ubuntu
剑神一笑28 分钟前
深入理解 Linux gzip 压缩:从 DEFLATE 算法到实战优化
linux·运维·php
LT101579744431 分钟前
2026年智能RPA选型指南:全场景智能自动化适配
运维·自动化·rpa
呉師傅34 分钟前
佳能LBP251dw打印机恢复出厂设置后变成英文菜单没有中文选项如何恢复中文菜单方法
linux·运维·服务器·网络·电脑
陳103039 分钟前
Linux:模拟实现进程池
linux·运维·服务器
Languorous.41 分钟前
Linux 系统简介——开源世界的基石
linux·运维·开源
Agent产品评测局1 小时前
本地化部署vs云端部署,制造业AI Agent方案对比:2026企业级自动化选型全景解析
运维·人工智能·ai·chatgpt·自动化
minji...1 小时前
Linux 网络基础之传输层TCP(七)确认应答机制,超时重传机制,连接管理机制(三次握手四次挥手),流量控制,滑动窗口,快重传
linux·运维·服务器·网络·网络协议·tcp/ip·http
2401_858286111 小时前
OS74.【Linux】线程互斥(3) 线程安全、重入
linux·运维·服务器·开发语言·线程
爱喝水的鱼丶1 小时前
SAP-ABAP:数据类型与数据对象 第二篇:底层逻辑篇——数据类型的分类体系与底层存储原理
运维·开发语言·学习·sap·abap