Ниже скелета к вашему сценарию. Вам придется реализовать my_curl_function
самостоятельно, но я предлагаю один раз вызвать функцию curl и проанализировать данные как для SERVER
, так и SERVICE
. Вызов его один раз для каждой переменной приводит к большим накладным расходам, что приводит к тому, что цикл не будет ровно 5 минут (чего еще нет). Если вы действительно хотите, чтобы это было ровно 5 минут, используйте Python; -)
Сценарий проверяет каждую секунду, изменяется ли содержимое SERVER
или SERVICE
. Если один из них отличается от ожидаемого, цикл будет прерван, и сценарий отобразит "Data is changed"
. Это будет эхо "Data remains unchanged"
в противном случае.
#! /bin/bash
function my_curl_function {
echo "Implement me!"
}
MYTIME=300
SERVER_EXPECTED=$(my_curl_function)
SERVICE_EXPECTED=$(my_curl_function)
SERVER=""
SERVICE=""
CHANGED=0
for ((x=0; x<MYTIME;x++)); do
SERVER=$(my_curl_function)
SERVICE=$(my_curl_function)
if [ "${SERVER_EXPECTED}" != "${SERVER}" ] || [ "${SERVICE_EXPECTED}" != "${SERVICE}" ]; then
CHANGED=1
break
fi
echo -ne "\rSeconds waiting: $x"
sleep 1
done
echo
if [ ${CHANGED} -eq 1 ]; then
echo "Data is changed"
exit 0
else
echo "Data remains unchanged"
exit 1
fi