解決不支持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命令了