date – как получить следующий будний день (игнорировать выходные)

Я настраиваю работу cron для приостановки и пробуждения сервера в определенные моменты.

Я использую две команды. Один будет работать с понедельника по четверг:

rtcwake -m mem -t $(date +%s -d "08:00") 

И еще один будет работать по пятницам:

 rtcwake -m mem -t $(date +%s -d "monday 08:00") 

Интересно, возможно ли сделать это разделение ненужным. Если бы date могла понять такое утверждение, как next weekday 08:00 , это бы сильно упростило ситуацию.

Я не смог найти, возможно ли это на самом деле или какой синтаксис мне использовать.

Я в основном хочу, чтобы мой сервер не просыпался по субботам и воскресеньям.

One Solution collect form web for “date – как получить следующий будний день (игнорировать выходные)”

Вы можете попробовать

 date +%s -d"$(( ( $(date +%w)==5 )?3:1 ))days 8:00" 

РЕДАКТИРОВАТЬ: ответить на ваш комментарий: date +%w возвращает день недели, который затем оценивается «условным оператором» ( expr?expr:expr ): если expr1 оценивается как TRUE, оценивать и использовать expr2, иначе expr3. Итак, в пятницу у нас есть день 5, и date +%s -d"3days 8:00 запуска date +%s -d"3days 8:00 , в остальные дни date +%s -d"1days 8:00 .

Linux и Unix - лучшая ОС в мире.