Здравствуйте, я пытаюсь сделать простой скрипт bash, и я очень новичок в этом.
С заявлением if я пытаюсь считать как часы.
Таким образом, вывод будет, например, 16:59:58, 16:59:59, 17:00:00.
Секунды и минуты работают, однако первый оператор if не работает.
Когда он попадает в 23:59:59, он должен идти в 00:00:00, а в 24:60:00
Любая помощь?
if [[ "$hours" -eq 23 && "$minutes" -eq 60 && "$seconds" -eq 60 ]]
then
seconds=0
minutes=0
hours=0
((date++))
else
if [[ "$minutes" -eq 60 ]]
then
minutes=00
((hours++))
else
if [[ "$seconds" -eq 60 ]]
then
seconds=00
((minutes++))
fi
fi
fi
Всего 1 ответ
Работайте от поля самого низкого порядка вверх вместо тестирования всех переменных.
((seconds++))
if [[ $seconds -eq 60 ]]
then
seconds=0
((minutes++))
fi
if [[ $minutes -eq 60 ]]
then
minutes=0
((hours++))
fi
if [[ $hours -eq 24 ]]
then
hours=0
((date++))
fi