我正在使用 expect
连接我的 SSH 服务器:
#!/bin/expect
set command [lindex $argv 0]
set command_connect "connect"
proc connect {} {
spawn ssh username@192.168.1.101
expect "password"
send "password\r"
interact
}
if {$command == $command_connect} {
connect
}
一切顺利,我可以连接到服务器,但无法输入命令!不知何故,所有命令都输入我的计算机上!如果我尝试清除屏幕:
proc connect {} {
spawn ssh username@192.168.1.101
expect "password"
send "password\r"
spawn clear
interact
}
然后我清除计算机上的屏幕并断开 SSH 连接(我返回到控制台)!
<小时/>为什么会发生这种情况以及如何继续在 SSH 服务器上输入命令?
最佳答案
如果您想向远程服务器发送命令,那么您需要通过生成的 SSH 进程发送它们:
expect "$"
send "clear\r"
第一行是确保远程服务器上出现提示。
关于linux - 如何使用expect继续在SSH服务器上输入命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542379/