Я хочу использовать оболочку и ожидать входа на сервер только одной командой.Но когда взаимодействие и возврат используются в одном выражении, я не понимаю, что они означают. Кроме того, «Пароль» будет появляться только тогда, когда мультиплексирование ссылок SSH отключено, поэтому я надеюсь, что когда «Пароль» не появится, он будетне отправлять "mypassord".
- Так как же написать сценарии для единого решения этих двух ситуаций?
- Когда были установлены мультиплексированные ссылки SSH, мой скрипт застрял в "ожидаемо" Пароль"". Как с этим бороться?
- Кроме того, я хотел бы спросить, что означает параметр -o после взаимодействия?И что означает использование взаимодействия и возврата вместе?
- В чем разница между «send -» и «send»?
Я включил мастер-соединение SSH.Прежде чем войти в систему на сервере, мне нужно сначала ввести пароль, а затем ввести номер, чтобы указать, на какой машине я вхожу в систему.Но когда SSH-мультиплексные соединения установлены, возможность ввода паролей становится избыточной.
#!/usr/bin/expect
# ssh command
set cmd [lindex $argv 0]
set relay_num [lindex $argv 1]
set timeout -1
# run ssh command
spawn bash -c "$cmd"
expect "Password*"
send "mypassord\r"
interact -o -nobuffer -re "Option" return
send -- "$relay_num\r"
interact