Bash
Unikanie daty za pomocą printf
Szukaj…
Wprowadzenie
W Bash 4.2 wprowadzono wbudowaną konwersję czasową powłoki dla printf
: specyfikacja formatu %(datefmt)T
powoduje, że printf
wyprowadza ciąg data-czas odpowiadający ciągowi formatu datefmt
w rozumieniu strftime
.
Składnia
- printf '% (dateFmt) T' # dateFmt może być dowolnym ciągiem formatu rozpoznawanym przez strftime
- printf '% (dateFmt) T' -1 # -1 reprezentuje aktualny czas (domyślnie bez argumentu)
- printf '% (dateFmt) T' -2 # -2 reprezentuje czas wywołania powłoki
Uwagi
Użycie printf -v foo '%(...)T'
jest identyczne jak foo=$(date +'...')
i zapisuje rozwidlenie dla wywołania na date
programu zewnętrznego.
Uzyskaj aktualną datę
$ printf '%(%F)T\n'
2016-08-17
Ustaw zmienną na aktualny czas
$ printf -v now '%(%T)T'
$ echo "$now"
12:42:47
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow