Ich habe gerade ein Tutorial durchgearbeitet und bin dort auf einen Befehl gestoßen:
printf "%(%s)T"
Die Ausgabe dieses Befehls lautet:
1454299615
Kann mir bitte jemand sagen, was dieser Befehl ist und was die Ausgabe bedeutet?
command-line
bash
rtecxs
quelle
quelle
printf
Bist du ein Eingebauter?/usr/bin/printf
auf Ubuntu 14.04 gibt einen Fehler:printf: %(: invalid conversion specification
. Wenn Sie verwendenbash
. Versuchen Sie esman bash
mit eingebauter Dokumentation.Antworten:
Es ist eine Möglichkeit, die formatierte Zeit durch auszudrücken
printf
.Das Format ist:
Wo
FORMAT
ist definiert durchstrftime(3)
.Um die Epochenzeit (Zeit in Sekunden seit 1970-01-01 00:00:00 UTC) zu erhalten, benötigen wir das
strftime(3)
Format%s
:Beachten Sie, dass Sie
\n
am Ende auch eine neue Zeile hinzufügen müssen, da dieseprintf
(im Gegensatz zuecho
) nicht standardmäßig hinzugefügt wird.Beispiel:
Der Vollständigkeit halber können Sie auch den
date
Befehl in einer ähnlichenstrftime(3)
formatierten Weise verwenden, um die Zeit zu ermitteln:Hinweis : Dieses Verhalten ist spezifisch für
bash
‚s undksh
‘ s eingebaute Funktionprintf
und funktioniert nicht mit/usr/bin/printf
,csh
undzsh
Einbauten.quelle
printf(1)
Manpage gesehen.printf
ist ein Builtin hier (obwohl die externe hat das gleiche Verhalten) .. überprüfenhelp printf
..