Przechodziłem samouczek i tam natknąłem się na polecenie:
printf "%(%s)T"
Dane wyjściowe tego polecenia to:
1454299615
Czy ktoś mógłby mi powiedzieć, co to polecenie i co oznacza wynik?
command-line
bash
rtecxs
źródło
źródło
printf
wbudowany?/usr/bin/printf
Ubuntu 14.04 daje błąd:printf: %(: invalid conversion specification
. Jeśli używaszbash
. Wypróbujman bash
wbudowaną dokumentację.Odpowiedzi:
Jest to sposób wyrażenia sformatowanego czasu
printf
.Format to:
Gdzie
FORMAT
jest zdefiniowany przezstrftime(3)
.Aby uzyskać czas epoki (czas w sekundach od 1970-01-01 00:00:00 UTC), potrzebujemy
strftime(3)
formatu%s
:Pamiętaj, że
\n
na końcu musisz również dodać nowy wiersz, ponieważprintf
(w przeciwieństwie doecho
) domyślnie go nie dodaje.Przykład:
Ze względu na kompletność możesz również użyć
date
polecenia w podobnystrftime(3)
sformatowany sposób, aby uzyskać czas:UWAGA : Takie zachowanie jest charakterystyczne dla
bash
„s iksh
” s wbudowaną funkcjęprintf
, a nie działa/usr/bin/printf
,csh
izsh
Zabudowy.źródło
printf(1)
stronie podręcznika .printf
jest tu wbudowany (chociaż zewnętrzny ma to samo zachowanie) .. sprawdźhelp printf
..