Во-первых - поскольку вы не ставите кавычки вокруг своих расширений, они передаются в качестве отдельных аргументов grep
.Первым результатом разделения строк и глобализации $DATE $HOUR
становится имя файла, по которому grep
выполняется поиск, а последующие становятся именами файлов для поиска.
Кроме того, плохой идеей будет date
вызывать больше, чемво всяком случае, один раз в том же сценарии.Что если ваш сценарий запускается по мере того, как время проходит в полночь?Первый звонок по номеру date
может быть в конце одного дня, а второй - в самом начале следующего утра.Чтобы избежать этого риска, звоните date
только один раз, как показано ниже:
now=$(date '+%Y-%m-%d %H')
msg="generated for Production"
orders_this_hour=$(grep -Ec "($now.*$msg|$msg.*$now)" <cli.log)
output="$now : $orders_this_hour"
echo "$output" >> flow_productivity.log