我试图在一组计算机上安装 R,有人告诉我检查 Expect。
我正在关注关于 Linux Expect Command 的教程,以自动将 ssh 导入节点并自动安装开源 R。
我有点卡在 ssh 部分:(教程在这里)
#!/usr/bin/expect -f
if {[llength $argv] != 3} {
puts "usage: ssh.exp username server password"
exit 1
}
set username [lrange $argv 0 0]
set server [lrange $argv 1 1]
set password [lrange $argv 2 2]
set timeout 60
spawn ssh $username@$server.mycompany.com
match_max 100000
expect "*?assword:*"
send -- "$password\r"
send -- "\r"
expect eof
我可以运行代码并登录到远程服务器,但是,我输入 ls 并且它只是挂在远程服务器端。然后我 ctrl + c 它注销并返回到我的主机服务器。
谁能告诉我登录后如何在 Expect 中继续该过程。
更新:由于 Ireeder 的回答。
您只需要将 expect eof 替换为 interact ,它就会将控制权交给用户。