Как получить номер следующего дня недели - PullRequest
0 голосов
/ 23 июня 2019

В сценарии оболочки Linux Debian 6

#!/bin/sh
backupday=$(date +%u)

переводит номер дня недели в переменную дня резервного копирования.В моем Linux

Monday returns 1
Thuesday returns 2
...
Saturady returns 6
Sunday returns 7

Как получить номер дня недели на следующий день:

Monday should return 2
Thuesday should return 3
...
Saturady should return 7
Sunday should return 1

Ответы [ 2 ]

3 голосов
/ 23 июня 2019

Я думаю, вы можете использовать FORMAT Интерпретированные последовательности %w вместо %u.

Все начинается с субботы (%w day of week (0..6); 0 is Sunday). И легко получить плюс 1, чтобы получить то, что вы хотите.

$ echo $(($(date +%w --date=Saturday) + 1))
7
$ echo $(($(date +%w --date=Sunday) + 1))
1
$ echo $(($(date +%w --date=Monday) + 1))
2
1 голос
/ 23 июня 2019

Это должно сделать:

$ echo $(( $(date +%u --date=Saturday) % 7 + 1 ))
7
$ echo $(( $(date +%u --date=Sunday) % 7 + 1 ))
1
$ echo $(( $(date +%u --date=Monday) % 7 + 1 ))
2
...