Оказалось, что проблема была связана с настройками пейджера mailx
. Он почему-то стал использовать more
, тогда как раньше использовал less
(который делает эскейп). Связывание more
с less
снова восстановило старое поведение.
Это не ответ, а небольшой обзор кода. :Я бы предложил это, чтобы улучшить ввод даты. :заставить пользователя вводить дату сразу и использовать команду date
для проверки и нормализовать ввод пользователя.
read -r -p "Enter the date (YYYY-mm-dd): " date
if ! date=$(date -d "$date" "+%Y-%m-%d"); then
echo "Error: invalid date" >&2
exit 1
fi
year=${date%%-*}
if [[ $year -gt 2020 ]]; then echo "invalid year" >&2; exit 1; fi
# then: grep "$date" logfile...