Befehl „Datum +FORMAT“ – Wie werden %a, %A, %b usw. genannt?

Befehl „Datum +FORMAT“ – Wie werden %a, %A, %b usw. genannt?

Der dateBefehl gibt das aktuelle Datum und die Uhrzeit wie folgt aus: Fri Apr 12 15:04:03 UTC 2013.

Um das Ausgabedatum und die Ausgabezeit in einem benutzerdefinierten Format zu erhalten, können wir date +FORMATbeispielsweise wie folgt verwenden: date "+%Y-%m-%dT%H:%M:%S%:z"Das Ergebnis ist in etwa wie folgt 2013-04-12T15:04:37+00:00:

Aber ich möchte wissen, wie die %Y, %m, %d, %H, %M, %S, usw. zusammenfassend genannt werden (also die Terminologie). Und wie heißt das T, da es sich vom Rest unterscheidet?

Antwort1

Der in der POSIX-Spezifikation verwendete BegriffdateDer Befehl lautet „Konvertierungsspezifikationen“.

Die Formatzeichenfolge für den dateBefehl orientiert sich eng an der Formatzeichenfolge für die C- printfFunktion; der C-Standard spricht auch von Dingen wie %d„Konvertierungsspezifikationen“.

Tnicht vorangestellt %ist nur ein Zeichen: „Alle anderen Zeichen sollen unverändert in die Ausgabe kopiert werden.“

Laut dem Abschnitt zum Änderungsverlauf der POSIX-Beschreibung von date:

Die BESCHREIBUNG wird aktualisiert und verweist aus Konsistenzgründen mit der Kategorie LC_TIME nun auf Konvertierungsspezifikationen statt auf Felddeskriptoren.

In einer früheren Version der Spezifikation wurde offenbar die Formulierung „Felddeskriptoren“ verwendet, die aktuelle offizielle Bezeichnung lautet jedoch „Konvertierungsspezifikationen“.

Das bedeutet natürlich nicht, dass Siehabenum sie so zu bezeichnen.

Antwort2

Ich würde denken, dass „Escape-Sequenzen“ oder (in diesem Fall) „Sonderzeichen für prozentual maskierte Sequenzen“ die typische Bezeichnung dafür sind. Backslash- und prozentual maskierte Sequenzen werden in C häufig verwendet (z. B. printf), sodass sie auch in mehrere Unix-Befehle eingedrungen sind (z. B. bei der Angabe der Eingabeaufforderung für die Shell).

Die „Escape-Sequenz“ ist „%Y“, „%m“, „%d“ usw. und die „Sonderzeichen“ sind „Y“, „m“, „d“ usw. „%“ wäre das „Escape-Zeichen“ (das Zeichen, das dem folgenden Zeichen eine ungewöhnliche/spezielle Bedeutung gibt).

Antwort3

Dieses Dokumentaus dem IBM Information Center heißt es klar, dassdie Alphabetein %Y, %m, %d, %H, %M, %S, usw. heißen "Felddeskriptoren".

Sie müssen jedemFelddeskriptormit einem%(Prozentzeichen). Das System ersetzt den Felddeskriptor durch den angegebenen Wert. [...] dateAlle anderen Zeichen kopiert der Befehl unverändert in die Ausgabe.

Das beantwortet meine beiden Fragen (zu %n und T). Und ich glaube, das ist so verbindlich, wie es nur sein kann.

Antwort4

Wie andere bereits gesagt haben, handelt es Tsich um einen wörtlichen Buchstaben T. Aber um genau zu sein, date "+%Y-%m-%dT%H:%M:%S%:z"scheint Ihr Beispiel eine Formatzeichenfolge zu sein, die dem entsprichtISO-8601Angabe für Datum und Uhrzeit. Hier Tist also ein Trennzeichen, das das Datum von der Uhrzeit trennt.

verwandte Informationen