解决不支持rz 和sz问题
脚本开头可以加入:export LC_CTYPE=en_US
将本地的LC_CTYPE环境变量设置成en_US,这样再用expect脚本自动登录,登录成功就可以使用rz 和sz传输文件了(亲测可用)
推荐:将此变量放在脚本里设置,这样只是影响当前连接远程机器但session,如果设置在.bash_profile脚本里,则可能会有中文显示乱码问题。
shell脚本如下:
#!/bin/sh basepath=$(cd `dirname $0`; pwd) export LC_CTYPE=en_US #expect脚本所在位置 filepath=$basepath/autologin/loginif [ -f $filepath ]; then expect $filepath $1 $2 else echo "$filepath not exits" fi
expect脚本如下:
#!/usr/bin/expect set USER root set PASSWORD xxxxxxxxxxxx set HOST xxx.xxx.xxx.xxx spawn ssh -l $USER $HOST expect { "yes/no" {send "yes\r";exp_continue;} "*assword:*" { send "$PASSWORD\r" } } # 登录成功后,可以执行别的命令,如 expect "~]*" {send "ssh xxxx\r"} expect { "yes/no" {send "yes\r";exp_continue;} "\\\$" }
iterm2设置如下:
sz/rz的设置可以按照网上方式设置即可, 这样就能使用sz/rz命令了