Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5
Конструиране на форматирана дата в #!/bin/bash
#1
Попитаха ме, как може да се направи "конструктор" на форматирана дата в Bash Shell за Unix/Linux системи. Както винаги отговорих "Зависи. Дайте повече подробности." Еми в случая, задачата цели да се създаде конструкцията година(4цифри)-месец(2цифри), например 2019-05 трябва е резултата за текущия месец, 2019-06 за следващия месец, 2019-12 за последния месец през тази година... а за месеца след това 2020-01. От това следва да вземете предвид, че предвид за кой (текущия или друг) месец, трябва да се актуализира/преизчислява както месеца, така и годината с точност до... един месец. Ама месеците имат различен брой дни... и за да не ви държа в напрежение, ето какво успях да сътворя с малко помощ от търсачката "Гоошоо":
Код:
echo $(date -d $(date +%Y)-$(date +%m -d "+1 month")-15 +%Y-%m)
2019-06 <- вярно
echo $(date -d $(date +%Y)-$(date +%m -d "+8 month")-15 +%Y-%m)
2019-01 <- това вече е грешно; не е актуализирана и годината
echo $(date -d $(date +%Y -d "+8 month")-$(date +%m -d "+8 month")-15 +%Y-%m)
2020-01 <- това вече е работещ съвсем правилно код, защото е валиден и за повече от +/- 12 месеца
 Без значение за колко месеца напред или назад във времето (-13;-1;+1;+8) искате да конструирате форматираната дата, този код ще ви свърши работа в bash script или директно в терминала.
[Изображение: notrobosmall.jpg]
Отговори


Отваряне на: