Как можно последовательно вызывать скрипты expect из скрипта bash?

Как обеспечить правильное возвращение управления в основной скрипт bash после выполнения expect-скрипта в диспетчеризации дистанционной конфигурации виртуальных машин?
  • 19 марта 2024 г. 3:29
Ответы на вопрос 2
Для последовательного вызова скриптов expect из скрипта bash можно использовать команду `expect -f <имя_файла_скрипта_expect>` внутри основного скрипта bash. Например:

```bash
#!/bin/bash

expect -f script1.exp
expect -f script2.exp
expect -f script3.exp
```

Чтобы обеспечить правильное возвращение управления в основной скрипт bash после выполнения expect-скрипта, можно использовать функцию `exit` внутри скрипта expect. Например, в конце каждого expect-скрипта добавить:

```bash
exit
```

Также можно использовать проверку завершения выполнения скрипта expect с помощью `wait` в основном скрипте bash. Например:

```bash
#!/bin/bash

expect -f script1.exp &
pid1=$!

expect -f script2.exp &
pid2=$!

expect -f script3.exp &
pid3=$!

wait $pid1
wait $pid2
wait $pid3

echo "Все скрипты завершены"
```

Таким образом, с помощью `exit` в скриптах expect и `wait` в основном скрипте bash можно обеспечить правильное возвращение управления и выполнение последовательности скриптов.
Вы линуксовые машины конфигурируете expect'ом? Тогда действительно - скорее глобально меняйте подход :)
Похожие вопросы