Как автоматизировать действие Ctrl + D в сценарии ожидания SSH в Bash? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть сценарий использования, где мне нужно выполнить команду после подключения к хосту через 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@ssword\r"
expect {
         ">" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}

set timeout 120
send "mml\r"
expect {
         "<" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}
send "$command1\r"
expect {
         "<" {}
}
send "exit;\r"
expect {
         ">" {}
          timeout { send_user "Timed out in ssh connection" ;exit 1}
}
send "exit\r"

EOF

Нужна команда, которая выполняет действие как Ctrl-d.

1 Ответ

1 голос
/ 24 апреля 2019

Вы можете смоделировать нажатие Ctrl-D, отправив символ ^ D / :

send "\x04"
...