Na przykład chcę wyświetlić bieżącą datę i godzinę w następującym formacie:
yyyymmddhhmmss
W jaki sposób mogę to zrobić? Wydaje się, że data najbardziej Format pochodzi z -
, /
, :
, itd.
Proszę bardzo:
date +%Y%m%d%H%M%S
Jak man date
mówi u góry, możesz użyć następującego date
polecenia:
date [OPTION]... [+FORMAT]
Oznacza to, że możesz nadać mu parametr formatu, zaczynając od +
. Prawdopodobnie możesz odgadnąć znaczenie symboli formatowania, których użyłem:
%Y
jest na rok%m
jest na miesiąc%d
jest na dzieńMożesz znaleźć to i inne symbole formatowania w man date
.
Prosty przykład w skrypcie powłoki
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Bez formatu interpunkcji: - +% Y% m% d% H% M% S
Z interpunkcją: - +% Y-% m-% d% H:% M:% S
"`date +%Y-%m-%d %H:%M:%S`"
daje midate: illegal time format
Jeśli używasz Bash, możesz również użyć jednego z następujących poleceń:
Możesz użyć opcji,
-v varname
aby zapisać wynik$varname
zamiast drukowania go na stdout:Chociaż polecenie date zawsze będzie wykonywane w podpowłoce (tj. W oddzielnym procesie), printf jest poleceniem wbudowanym i dlatego będzie szybsze.
źródło
%
opcji, które możesz przekazać, wydaje się, że używa tegodate
polecenia. Więcman date
da ci dostępne opcje.Bez interpunkcji (jak wspomniał @Burusothman):
O / P:
Z interpunkcją :
O / P:
źródło
Ciekawy / zabawny sposób na zrobienie tego za pomocą rozszerzenia parametrów (wymaga
bash 4.4
lub nowszy):źródło