Моя реальная цель состоит в том, чтобы иметь сценарий , который будет выполняться локально SSH на удаленный сервер, перезапустить Tomcat, и использовать expect
ждать "запуска сервера в" сообщении или ненулевым , если он видит запуск не удалось. Моя попытка - это сценарий. Я использую localhost для отладки, и INFO вместо "запуска не удалось" искусственно вызвать выход:
ssh -T localhost <<SSH_EOF
docker restart app
expect <<EXPECT_EOF
set timeout 30
spawn docker logs --since 1s -f app
expect_before "INFO" { exit 1 }
expect "Server startup in"
EXPECT_EOF
if [[ $? -eq 0]]; then
echo "Success!"
else
echo "Failed!"
fi
SSH_EOF
Скрипт завершает работу с первым сообщением INFO, но печатает Success! Почему бы не выйти с 1?