Jenkins上使用expect腳本實現(xiàn)發(fā)布物上傳SVN遇到字符集問題
編寫一個expect腳本實現(xiàn)發(fā)布物上傳到svn的功能比較簡單,可能需要注意一點就是增加文件替換功能,其核心步驟有4步:
#從SVN指定路徑下載內(nèi)容
spawn svn co "$svndir"
#先刪除掉已經(jīng)存在的內(nèi)容
svn delete $file
#再加入新的文件
svn add --no-ignore --force $file
#最后提交
spawn svn ci -m "$msg"
但關鍵問題在于,腳本在mac上調(diào)試的好好的,放到jenkins的shell中執(zhí)行就卡住,百思不得其解。
最后偶然間發(fā)現(xiàn),jenkins中調(diào)用expect腳本,控制臺輸出是這樣的:
spawn svn co http://192.168.x.x/V1.2.4/iOS/Build01 認證領域:
http://192.168.x.x:80 Subversion repository
但是在mac上調(diào)試腳本的時候,輸出是這樣的:
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打印該變量,輸出結(jié)果為en_US.UTF-8。
至此,確定這是個字符集問題。文章來源:http://www.zghlxwxcb.cn/news/detail-689491.html
解決辦法就比較簡單了,在shell中執(zhí)行的時候?qū)⒆址y(tǒng)一為調(diào)試腳本的字符集即可,問題解決,記之。文章來源地址http://www.zghlxwxcb.cn/news/detail-689491.html
到了這里,關于Jenkins上使用expect腳本實現(xiàn)發(fā)布物上傳SVN遇到字符集問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!