Вот мой пример использования сценария ожидания (один из немногих, которые у меня есть)
Я хочу запустить несколько команд sed
через ssh. Это похоже на предварительную настройку среды. Я хочу запустить что-то вроде этого: -
#!/usr/bin/expect
set timeout -1
spawn -noecho bash -c "ssh -t user@host 'sed -i <some_stuff1> <file1>'"
spawn -noecho bash -c "ssh -t user@host 'sed -i <some_stuff2> <file2>'"
spawn -noecho bash -c "ssh -t user@host 'sed -i <some_stuff3> <file3>'"
expect {
-re ".*sword.*" {
exp_send "$env(PASS_WORD)\n"
exp_continue
}
}
Но будет выполнена только последняя sed
команда. 1-й и 2-й будут пропущены.
Что может быть скрытой жемчужиной, которую мне не хватает?
Вот то, что я смотрел до сих пор, но не помогло
Обработка нескольких операторов в сценарии ожидания
Сценарий ожидания: как обрабатывать два процесса?
Одновременная обработка нескольких процессов — онлайн-книга Safari