Durch das Lesen einer anderen Antwort weiß ich, dass der folgende Befehl zum Drucken der aktuellen Epochenzeit verwendet werden kann :
$ date +'%s'
1491150773
Beim Lesen der date(1)
Manpage (Hinweis: Ich verwende tatsächlich macOS) habe ich ein Beispiel gefunden, das die Verwendung veranschaulicht:
Finally the command: date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s" can be used to parse the output from date and express it in Epoch time.
Aus dem Lesen des Beispiels geht hervor, dass +
die einzelnen Anführungszeichen verwendet werden können:
$ date '+%s'
1491150781
Obwohl ich die aktuelle Epochenzeit erfolgreich drucken kann, verstehe ich nicht, warum es funktioniert, und habe einige Fragen:
- Warum wird
date +'%s'
die aktuelle Epochenzeit gedruckt? Gibt es ein allgemeineres Beispiel, das das Muster für die Verwendung in diesem Beispiel veranschaulicht? - Warum kann ich
+
die Anführungszeichen einfügen?
Ich habe versucht, den Befehl in EXPLAINShell zu setzen , aber es ist nicht sehr hilfreich:
shell
command-line
quoting
date
mbigras
quelle
quelle
Antworten:
BSD-Datum und GNU-Datum haben beide die Form:
with
FORMAT
ist die Zeichenfolge für das Ausgabeformat zur Anzeige des Datums. Was Sie also füttern würden,date
ist nur eine Zeichenfolge, beginnend mit+
.Bevor Sie die Zeichenfolge an übergeben
date
, wird die Zeichenfolge von Ihrer Shell interpretiert. Also+%s
oder+'%s'
oder"+%s"
sind beide gleichwertig, interpretiert von allen POSIX-Shells wie sie sind.Der einzige Vorteil
+'%s'
besteht darin, dass Sie schnell erkennen können, welches Zeichenfolgenformat verwendet wurde, oder es kopieren und analysieren können, ohne sich um das Format kümmern zu müssen+
.Auch
+'FORMAT'
Wille hilft Ihnen , wenn Sie spezielle Formate verwenden, die als Shell Erweiterung interpretiert werden kann. Beispiel mitzsh
:würde funktionieren während:
würde nicht.
quelle