Jak zdobyć bieżącą datę i godzinę w skrypcie Bash

Jak zdobyć bieżącą datę i godzinę w skrypcie Bash

Jako język scenariusza Bash jest szeroko stosowany do zadań administrowania systemem i automatyzacji. Jednym z powszechnych zadań w skryptowaniu BASH jest uzyskanie bieżącej daty i godziny. 'data' Polecenie zwraca bieżącą datę i godzinę w określonym formacie, ale możesz również użyć niestandardowego ciągu formatu, aby uzyskać datę i godzinę w dowolnym formacie

W tym artykule zbadamy, jak uzyskać bieżącą datę i godzinę w skrypcie Bash.

Uzyskanie bieżącej daty i godziny

W Bash możesz użyć polecenia daty, aby uzyskać bieżącą datę i godzinę. Domyślnie polecenie daty zwróci bieżącą datę i godzinę w formacie „Day_of_Week Miesiąc Dzień Godzina: Minuta: Drugi stref czasowy”

Na przykład:

data  Sun 28 lutego 23:26:13 UTC 2023 

Możesz także przechowywać wyjście polecenia w zmiennej do dalszego użycia.

#!/bin/bash current_date_time = $ (data) echo "bieżącą datę i godzinę: $ current_date_time" # Wyjście: bieżąca data i godzina: Sun 28 lutego 23:26:13 UTC 2023
12345#!/bin/bashcurrent_date_time = $ (data) echo "bieżąca data i godzina: $ current_date_time" # Data: bieżąca data i godzina: Sun 28 lutego 23:26:13 UTC 2023

Wyjście formatu niestandardowego

Istnieje kilka przełączników, możesz użyć do sformatowania wyjścia polecenia daty.

  • Uzyskaj datę „MM/DD/YY HH: MM: SS” format:
    Data +„ %d %t”  03/25/17 14:40:32 
  • Zdobądź obecny UNIX epoka czas:
    Data +%s  1554542637 
  • Uzyskaj datę „YYYY-MM-DD HH: MM: SS” format:
    Data +„%y-%m-%d%t”  2019-03-25 14:40:32 
  • Oto bardziej powszechne formaty daty:
    ParametrWyjście
    Data +”%m/%d/%y”03/25/2019
    Data +„%D-%B-%Y”25-mar-2019
    Data +„ %y %b %m”2019 25 marca
    Data +„%h:%m”14:40
    Data +„%I:%m%p”14:40
    Data +„%h:%m:%s”14:40:32
    Data +”%I:%m:%s%p”02:40:32
    Data +”%m/%d/%y%h:%m”03/25/2019 14:40
    Data +„ %A, %m %d %y %h: %m”Poniedziałek, 03 25 2019 14:40
    Data +„ %A, %B %D, %y %I: %m %P”Poniedziałek, 25 marca 2019 14:40
    Data +” %A, %B %D, %y %H: %M: %S”Poniedziałek, 25 marca 2019 14:40:32

Użyj daty w skrypcie Shell:

Możesz po prostu użyć polecenia daty wewnątrz skryptu powłoki podobnej do użycia w wierszu polecenia. Utwórz skrypt bash getDateTime.SH z następującą treścią.

#!/bin/bash currentDate = "data +"%y-%m-%d%t "" currentDateOnly = "data +"%b%d,%y "" curperepoctime = "data +"%y-%m-%m-%m-%m-% d%t "" echo bieżąca data to: $ currentDateOnly echo bieżąca data i godzina to: 'data +"%y-%m-%d%t"' echo bieżąca data i godzina to: $ currentDate echo prąd bieżący UNIX EPOCH Time to: $ CurressEpoctime
12345678910#!/bin/bash currentDate = 'data +"%y-%m-%d%t"' currentDateOnly = 'data +"%b%d,%y"' currentEpoctime = 'data +"%y-%m-%m-% d%t "'echo bieżąca data to: $ currentDateOnly echo bieżąca data i godzina to:' data +"%y-%m-%d%t "'echo bieżąca data i godzina to: $ currentDate echo bieżący UNIX EPOCH Time to: $ CurressEpoctime

Teraz wykonaj skrypt z wiersza poleceń i obserwuj wyjście.

./GetDateTime.cii  Obecna data to: 25 marca 2019 Obecna data i godzina to: 2019-03-25 17:18:19 Obecna data i godzina IS: 2019-03-05 17:18:19 Obecny czas epoch IS: 1488541699 

Dostępne opcje z poleceniem daty:

Możesz znaleźć wszystkie dostępne opcje polecenia daty za pomocą parametru -Help

Data -Help  

Znajdziesz dane wyjściowe jak poniżej z dodatkowymi opcjami.

  • %%: dosłownie %
  • %A: W skróconej nazwie Locale w dni powszednie (e.G., Słońce)
  • %A: Pełna nazwa Locale's (e.G., Niedziela)
  • %B: Nazwa miesiąca w skrócie (e.G., Styczeń)
  • %B: Pełna nazwa Miesiąca lokalizacji (e.G., Styczeń)
  • %C: Data i godzina lokalizacji (e.G., Czw 3 23:05:25 2005)
  • %C: wiek; jak %y, z wyjątkiem pominięcia dwóch ostatnich cyfr (e.G., 21)
  • %D: dzień miesiąca (e.G, 01)
  • %D: data; To samo co%m/%d/%y
  • %mi: dzień miesiąca, wyściełana przestrzeń; Tak samo jak %_D
  • %F: pełna data; to samo co%y-%m-%d
  • %G: Ostatnie dwie cyfry roku numeru ISO (patrz %g)
  • %G: Rok numer tygodnia ISO (patrz %V); zwykle przydatne tylko z %v
  • %H: to samo co %b
  • %H: godzina (00… 23)
  • %I: godzina (01… 12)
  • %J: Dzień roku (001… 366)
  • %k: godzina (0… 23)
  • %l: godzina (1… 12)
  • %M: miesiąc (01… 12)
  • %M: minuta (00… 59)
  • %N: Nowa linia
  • %N: Nanosekund (000000000… 999999999)
  • %P: Equivalent Locale dla AM lub PM; puste, jeśli nie są znane
  • %P: jak %p, ale niższa obudowa
  • %R: 12-godzinny czas lokalizacji (e.G., 11:11:04 PM)
  • %R: 24-godzinna godzina i minuta; To samo co %h: %m
  • %S: sekundy od 1970-01-01 00:00:00 UTC
  • %S: Drugi (00… 60)
  • %T: karta
  • %T: czas; Taki sam jak%h:%m:%s
  • %u: Dzień tygodnia (1… 7); 1 to poniedziałek
  • %U: Liczba tygodnia roku, z niedzielę jako pierwszy dzień tygodnia (00… 53)
  • %V: Numer tygodnia ISO, z poniedziałkiem jako pierwszy dzień tygodnia (01… 53)
  • %w: Dzień tygodnia (0… 6); 0 to niedziela
  • %W: Liczba tygodnia roku, z poniedziałkiem jako pierwszy dzień tygodnia (00… 53)
  • %X: reprezentacja daty lokalizacji (e.G., 12/31/99)
  • %X: reprezentacja czasu lokalizacji (e.G., 23:13:48)
  • %y: Ostatnie dwie cyfry roku (00… 99)
  • %Y: rok
  • %z: +hhmm liczbowa strefa czasowa (e.G., -0400)
  • %: z: +HH: mm numeryczna strefa czasowa (e.G., -04:00)
  • %:: z: +HH: MM: SS Numeryczna strefa czasowa (e.G., -04:00:00)
  • %:: z: numeryczna strefa czasowa z: do niezbędnej precyzji (e.G., -04, +05: 30)
  • %Z: Alfabetyczna strefa czasowa (e.G., EDT)

Wniosek

Uzyskanie bieżącej daty i godziny w skrypcie BASH jest powszechnym zadaniem, które można wykonać za pomocą polecenia daty. Domyślnie polecenie daty zwraca bieżącą datę i godzinę w określonym formacie, ale możesz również użyć niestandardowego ciągu formatu, aby uzyskać datę i godzinę w dowolnym podobnym formacie. Rozumiejąc, jak korzystać z polecenia daty w skrypcie BASH, możesz zbudować potężne skrypty automatyki, które korzystają z bieżącej daty i godziny.