前不久,写了个很简单的exp登录脚本。
今天想通过rz上传个文件,却怎么也传不上去。
并不报错,命令执行后除了文件未上传,其它与上传成功时一样。
做为一个前端开发,写段shell真是一步一个坑。
原因及解决方式
鼓捣良久后发现,原来是字符集问题。
用.sh将.exp包裹,并在.sh文件中指定LC_CTYPE=en_US解决。
简单的代码示例:
- test.sh
#!/bin/sh
export LC_CTYPE=en_US
/Users/test/test.exp
- test.exp
#!/usr/bin/expect -f
set ip *.*.*.*
set password **********
set timeout 10
spawn ssh root@$ip
expect {
"*yes/no" { send "yes
"; exp_continue}
"*password:" { send "$password
" }
}
expect "#*"
send "cd ..
"
interact
另: 通过该设置也解决了通过vim查看文件时的乱码问题。
本文分享了一次rz上传文件失败的排查经历,揭示了字符集问题导致的上传失败现象,并提供了解决方案,即通过.sh脚本指定LC_CTYPE=en_US来规避此问题,同时介绍了如何使用exp和vim在不同字符集环境下正确操作。
1147

被折叠的 条评论
为什么被折叠?



