Базовый ответ:
case "$1" in
(-force)
: OK;;
(*)
case $(date +'%H') in
(09|1[0-6])
echo "Cannot run between 09:00 and 17:00" 1>&2
exit 1;;
esac;;
esac
Обратите внимание, что я протестировал это (скрипт с именем 'so.sh'), выполнив:
TZ=US/Pacific sh so.sh
TZ=US/Central sh so.sh
Он работал в тихоокеанское время (08:50), а не в центральное время (10:50). Суть в том, что вы подчеркиваете, что ваши элементы управления работают так же хорошо, как и переменные среды. И пользователи могут работать с переменными окружения.