如何在 ssh 期望脚本中自动执行 ctrl+d 操作



我有一个用例,我需要在通过 ssh 连接到主机后执行命令。命令执行后,我需要执行 Ctrl-D 和 Ctrl-M,以便我可以发出其他命令。

我尝试使用 EOF,但它完全关闭了会话。

expect << EOF
spawn ssh -o StrictHostKeyChecking=no LocalCOMUser@$nodeIp -p $ssh_port
expect {
         "password:" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}
send "p@sswordr"
expect {
         ">" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}
set timeout 120
send "mmlr"
expect {
         "<" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}
send "$command1r"
expect {
         "<" {}
}
send "exit;r"
expect {
         ">" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}
send "exitr"
EOF

需要一个作为 Ctrl-d 执行操作的命令。

您可以通过发送 ^D/ 字符来模拟按 Ctrl-D:

send "x04"

最新更新