Я тестирую некоторые функции в утилите bash date, и хотя вычитание из определенного значения datetime работает нормально, я не могу проверить, является ли определенная дата понедельником или нет:
#!/bin/bash
export TZ=UTC
ZIPPED="$1"
gunzip "$ZIPPED"
UNZIPPED=${ZIPPED%.*}
TRDAY_raw=${UNZIPPED%%.*} # 20200427
test=$(date -Is -d "$TRDAY_raw -3 day")
echo "MINUS 3 DAYS ---> $test"
if [[ $(date -Is -d "${TRDAY_raw}" +%u) -eq 1 ]]; then
echo "$TRDAY_raw is Monday"
fi
gzip $UNZIPPED
I запустите приведенный выше код следующим образом:
bash /test/dates/wday.sh 20200427.global.csv.gz
Результат будет следующим:
MINUS 3 DAYS ---> 2020-04-24T00:00:00+0000
date: multiple output formats specified
Как мне найти день недели в этой ситуации?
GNU bash, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)