Estou com uma dificuldade com comparação de horas. Estou a pouco tempo mexendo com shell script e não sei manipular bem 'date'.
Tenho um arquivo de horarios onde verifico, se a execução do script principal esteja dentro desses horários lidos.
Conteúdo do arquivo de horários:
11:00-12:30
13:30-14:00
17:00-18:00
23:30-00:00
O que preciso é verificar se esta lista de horários foi digitada errada... tipo 17:00-16:00 o que seria o correto seria 16:00-17:00.
Quando o horário inicial for maior que o final executo uma ação e gravo um log sobre o erro.
O que não estou conseguindo resolver é quando o for chega no horário 23:30-00:00 ou 23:30-00:01..... esta dando que 23:30 é "maior"
que 00:00 e o correto seria "menor"
# Neste 'for' efetuo a leitura da lista de horarios e efetuo um teste simples so pra ver se esta funcionando como esperado
for window in $windowList; do
windowStart=$(echo $window | awk -F'-' '{print $1}' | sed 's/\://g')
windowFinish=$(echo $window | awk -F'-' '{print $2}' | sed 's/\://g')
# verifico se o horário inicial é maior ou igual ao horário final
if [ $StartDate -ge $FinalDate ]; then
echo "Horario $windowStart é maior que $windowFinish"
else
echo "Horario $windowStart é menor que $windowFinish"
fi
done
Saída do 'for' acima:
Horario 1100 é menor que 1230
Horario 1330 é menor que 1400
Horario 1700 é menor que 1800
Horario 2330 é maior que 0000 <--- aqui deveria ser 'Horario 2330 é maior que 0000'