前不久,写了个很简单的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查看文件时的乱码问题。