In имеют функцию, которую я вызываю в al oop параллельно:
#!/bin/bash
my_func()
{
until [[ $entity status is OK ]]; do
sleep 5
echo "count=$count"
if (( timeout_flag == 1 )); then
break
fi
done
}
_arr=(e1 e2 e3)
count=0
timeout=60
timeout_flag=0
for entity in "${_arr[@]}"; do
my_func "${entity}" &
done
while [[ "${count}" -lt "${timeout}" ]]; do
sleep 5
count=count+5
done
timeout_flag=1
echo "Timeout reached"
sleep 1
Я хочу, чтобы все функции периодически проверяли, пока статус объекта не был в порядке, и ждали все состояния OK или не останавливались все (оставшиеся) функции по истечении времени ожидания? Что бы ни пришло первым. Вышеприведенное, похоже, не работает, и мне нужно убить его вручную.
Почему я получаю эхо-запрос "Timeout reached"
в конце, и сценарий не ожидает завершения функций sh?
Почему count=0
в my_fun c и не увеличивается?