625 Stimmen

Erstellen Sie eine Zeitstempelvariable im Bash-Skript

Ich versuche, eine Zeitstempelvariable in einem Shell-Skript zu erstellen, um das Protokollieren etwas einfacher zu machen. Ich möchte die Variable am Anfang des Skripts erstellen und möchte, dass sie die aktuelle Zeit ausgibt, wann immer ich echo $timestamp verwende. Es ist schwieriger als ich dachte. Hier sind einige Dinge, die ich ausprobiert habe:

timestamp="(date +"%T")" echo gibt (date +"%T") aus

timestamp="$(date +"%T")" echo gibt die Zeit aus, als die Variable initialisiert wurde.

Andere Dinge, die ich ausprobiert habe, waren nur leichte Variationen, die nicht besser funktionierten. Weiß jemand, wie ich erreichen kann, was ich versuche zu tun?

37voto

Und für meine europäischen Kollegen, versuchen Sie es mit diesem:

timestamp=$(date +%d-%m-%Y_%H-%M-%S)

gibt ein Format von: "15-02-2020_19-21-58"

Sie rufen die Variable auf und erhalten die Zeichenfolgendarstellung wie folgt

$timestamp

25voto

Loïc Punkte 11141

Viele Antworten, aber ich konnte nicht finden, wonach ich gesucht habe:

date +"%s.%3N"

gibt etwas ähnliches zurück: 1606297368.210

21voto

choroba Punkte 214897

Verwenden Sie Befehlssubstitution:

timestamp=$( date +%T )

19voto

Sean Lin Punkte 371

Ich benutze Ubuntu 14.04.

Der richtige Weg in meinem System sollte date +%s sein.

Die Ausgabe von date +%T sieht so aus: 12:25:25.

15voto

chepner Punkte 440093

Aktuelle Versionen von bash erfordern keinen Aufruf des externen Programms date:

printf -v timestamp '%(%T)T'

%(...)T verwendet das entsprechende Argument als UNIX-Zeitstempel und formatiert es gemäß dem strftime-Stilformat zwischen den Klammern. Ein Argument von -1 entspricht der aktuellen Zeit und kann, wenn keine Mehrdeutigkeit vorliegt, weggelassen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X