解決使用expect自動登入後,不能使用rz和sz命令問題
解決不支援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/login-a
if [ -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;}
"\\\$"
}
---------------------
作者:byds520
來源:CSDN
原文:https://blog.csdn.net/lovewebeye/article/details/85049423
版權宣告:本文為博主原創文章,轉載請