Вы не устанавливаете переменную public_ip
в своем скрипте. Меня не удивит, если скрипт пожалуется на «ec2: команда не найдена».
Чтобы установить переменную:
public_ip=$(aws ec2 describe-instances --instance-ids i-070107834ab273992 --query 'Reservations[*].Instances[*].PublicDnsName' --output text)
(заявление об отказе: я не использовал aws
, поэтому я предположим, что команда верна).
Информация о том, запущен ли экземпляр, должна быть доступна с
aws ec2 describe-instance-status
Возможно, вы захотите применить некоторые фильтры и / или grep для указания c результат. Вы можете попробовать опрашивать с помощью l oop:
while ! aws ec2 describe-instance-statusv --instance-ids i-070107834ab273992 | grep 'something that characterizes running' ; do
sleep 5
done