Для контекста я работаю на машине Windows с MINGW64. У меня не было возможности проверить это на машине с Linux.
Я работаю с [date][1]
в bash и пытаюсь добавить дни к дате, представленной в секундах с 1970-01-01 00:00:00, т.е. в формате %s
. У меня есть следующий код Bash:
DATE1=$(date --date=now "+%s")
echo "DATE1: ${DATE1}"
DATE2=$(date --date="$(date --date="${DATE1}" "+%s")+2 days" "+%d%b%Y %H:%M:%S")
echo "DATE2: ${DATE2}"
Что дает вывод на консоль
DATE1: 156133763
date: invalid date '1561337963'
DATE2: 26Jun2019 10:59:24
На самом деле, DATE2
имеет ожидаемое значение с точностью до секунды. Однако консоль все равно выдает ошибку. Почему может возникнуть эта ошибка? Будет ли это как-то связано с запуском MINGW64?
Обновление:
Я запустил это на сервере Debian, к которому у меня есть доступ. Он вычислил время с now
, как на MINGW, но вернул другую ошибку: ./test.sh: line 3: --date=1561342165: command not found
.
Запуск этого на том же сервере с пользовательской датой:
DATE1=$(date --date="$(date --date="19Jun2019 11:35:46" "+%d%b%Y %H:%M:%S")" "+%s")
Аналогично возвращается
DATE1: 1560908146
date: invalid date ‘1560908146’
DATE2: 26Jun2019 12:20:08
Что на самом деле указывает на то, что оно вообще не добавляет к определенной дате, а просто добавляет к сегодняшней дате (это 24 июня, где я сейчас нахожусь). Понятно, что что-то не так!