Как указывает Рэйф в другом ответе, -eq
- это число, вам нужно использовать ==
для сравнения строк.Но вы сказали, что хотите сказать, если время между двумя, а не точно равно одному.В этом случае вы должны использовать оператор <
:
if [ '08:03' \< "$dt" -a "$dt" \< '14:03']
Или более удобно:
if [[ '08:03' < "$dt" && "$dt" < '14:03']]
Обратите внимание, что эти операторы не указаны в POSIX, но работают на большинстве оболочек (Баш, Корн Шелл, зш).Остерегайтесь их использования, если вы используете минимальную оболочку, такую как Dash (это то, что /bin/sh
есть в Ubuntu).