Nano Hash - криптовалюты, майнинг, программирование

если тогда логика внутри ожидаемого скрипта

У меня есть сценарий ожидания, который я использую для ssh. Некоторые из моих хостов запрашивают текст ключа хоста RSA, а некоторые нет. Как я могу настроить свой скрипт для if/then в expect. Вот что у меня есть до сих пор.

#!/usr/bin/expect -f

set ipaddress [lindex $argv 0];
spawn ssh user@$ipaddress
expect "Are you sure you want to continue connecting (yes/no)?"
send "yes\r"
expect "user@$ipaddress's password:"
send "password\r"
set prompt {\$ $}
expect -re $prompt
send "$command\r"
expect -re $prompt
send "quit\r"
interact

Часть, которую мне нужно построить в логике if/then, это две строки:

expect "Are you sure you want to continue connecting (yes/no)?"
send "yes\r"

Логический поток будет таким:

if expect "Are you sure you want to continue connecting (yes/no)?"
then send "yes\r"
else
expect "user@$ipaddress's password:"
etc..

Как я могу это сделать?

22.07.2016

Ответы:


1

Это работает для меня со следующими модификациями кода.

expect {
    "Are you sure you want to continue connecting (yes/no)?" {
         send "yes\r"
         exp_continue
    }
    "user@$ipaddress's password:" {
         send "password\r"
    }
    }
22.07.2016
  • У вас есть exp_continue не в том месте: он должен быть в блоке вы уверены. Потому что в обоих случаях вы должны ввести пароль. 23.07.2016
  • Обновлен мой ответ, чтобы отразить ваше предложение. У меня еще не было ни одного сбоя с момента перемещения exp_continue, так что, похоже, вы правы. 23.07.2016

  • 2

    Если вы собираетесь «вслепую» принять ключ хоста, вы можете сделать что-то вроде того, что предлагается здесь:

    https://askubuntu.com/questions/123072/ssh-automatically-accept-keys

    Есть несколько предложений — метод ssh-keyscan является более безопасным.

    22.07.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..