Итак, у меня есть сценарий оболочки, который sshs в машину, а затем, используя ожидание, передает пароль через expect, а затем запускает скрипт matlab. Проблема в том, что я хотел бы сделать это для целого ряда машин в сети, и если это тот, который я не подключил, прежде чем спрашивать у меня пароль, он говорит мне, что он не может аутентифицировать машину, как спрашивает меня, если я хотите подключиться и ожидает ответа yes \ no.shell scripting «ожидать» от различных ответов от ssh
Я хочу, чтобы мой сценарий оболочки мог обрабатывать ситуации, когда он просто запрашивает пароль и где ему также удается справиться с да \ нет. Я не знаю, как это сделать с «ожиданием», когда он не получает то, что он ожидает, просто зависает.
Также по каким-то причинам мой дополнительный код для обработки ответа «да» не работает при тестировании его на машинах. Я знаю, что не вошел в систему. Это формат, с которым они отвечают.
«Невозможно установить подлинность хозяина« семь (128.40.41.89) ». Отпечаток ключа RSA: d6: 9d: d0: 61: 5f: bb: 36: 9a: 74: 2c: f6: b9: a7: 79: 03: 98. Вы действительно хотите продолжить подключение (да/нет)? "
И это мой код, который по какой-то причине не работает с моим добавлением, но отлично работает с битом «assword:», который я нашел при обмене стеками. Я вижу терминал, и он спрашивает yes \ no question, но тогда мой скрипт не отвечает. Я предполагаю, что каким-то образом я предполагаю, что ошибаюсь, но я понятия не имею, как это сделать.
#!/bin/sh
ssh seven
expect "(yes\no)? "
send "yes\r"
expect "assword:"
send "my password goes here\r"
matlab -nodisplay -nojvm -nosplash -nodesktop -r \
"try, run('\path\matlab_script.m'), catch me, fprintf('%s/%s \n',me.identifier,me.message), end, exit"
@generic, есть ожидание решения этого (поиск «да/нет exp_continue»), но это лучший способ сделать это. –
Спасибо Олег, очень благодати! И спасибо, Гленн, может быть полезен для будущих проблем. –