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

相关推荐
智能运维指南25 分钟前
2026 年企业IT运维监控系统选型指南:全栈可观测平台对比与落地建议
运维
sdm07042731 分钟前
进程间通信
linux·运维·服务器
蚰蜒螟35 分钟前
Linux内核启动(init)与程序执行(execve)深度解析:从kernel_init到load_elf_binary
linux·运维·服务器
hhb_6181 小时前
Go高性能并发编程实战与底层原理剖析
运维·网络·golang
带娃的IT创业者2 小时前
Claude Code Routines 深度解析:重新定义 AI 辅助编程的工作流自动化
运维·人工智能·自动化·ai编程·工作流·anthropic·claude code
broadview_java2 小时前
搬瓦工修改SSH端口
运维·网络·ssh
嵌入式×边缘AI:打怪升级日志2 小时前
从硬编码按键驱动到 Linux Platform 设备树驱动:逐行解剖与融会贯通
linux·运维·服务器
小周技术驿站3 小时前
Linux 权限管理细节详解
linux·运维·服务器·ubuntu·centos
senijusene4 小时前
I2C 总线框架下LM75A 温度传感器 Linux驱动开发:
linux·运维·驱动开发
专注VB编程开发20年4 小时前
工控成套控制柜厂家 / 自动化小工厂 对外市场价
运维·自动化·工控·上位机开发