Я хотел бы использовать команду timeout
, но она поддерживает только тайм-аут одной команды.
Моя цель - сделать что-то вроде этого - ожидание до тех пор, пока не истечет список портов:
timeout 60 for port in $ports
do
while ! nc -zv localhost $port; do
sleep 1
done
done
if [[ $? -ne 0 ]]; then
echo not all ports up on time
fi
Я хочу, чтобы for l oop остановился, если прошло 60 секунд, и проверил, был ли он успешным или нет.
Я понимаю, что могу добиться этого, используя что-то вроде:
timeout 60 bash -c "..."
Но это будет очень нечитаемо. Я думал, может быть, функция bash будет работать как команда, но она не работает ..
Есть идеи?