(formatted output)
printf gibt die von Ihnen angegebenen Argumente in formatierter Form aus. printf unterstützt alle Formatangaben für Zeichenketten wie bei der C-Funktion printf().
Syntax
printf format[ arg]... |
Zeichenfolge, die drei verschiedene Objekttypen enthalten kann:
Zeichenfolge, die im durch format bestimmten Format auf der Standard-Ausgabe ausgegeben wird. Sind weniger Argumente vorhanden als format verlangt, wird für die fehlenden Argumente 0 oder die leere Zeichenkette eingesetzt. Sind mehr Argumente vorhanden als format verlangt, wird format mehrfach verwendet (außer bei Angabe von ar g_nr$; in diesem Fall werden die überzähligen Argumente ignoriert). arg nicht angegeben: |
Sonderzeichen
Folgende Sonderzeichen werden von printf interpretiert:
*) |
Formatelemente
Ein Formatelement besteht aus:
steht immer am Anfang des Formatelements. Soll das %-Zeichen nicht Bestandteil des Formatelements sein, sondern ein auszugebendes Zeichen, muss es durch ein zusätzliches %-Zeichen entwertet werden (%%).
dezimale Ganzzahl, mit der Sie die Position des Arguments angeben, das bearbeitet werden soll. Der Zahl muss ein $-Zeichen folgen. %arg_nr$ und % sollten nicht vermischt verwendet werden. arg_nr nicht angegeben: Wenn Sie für ein Argument arg_nr$ verwenden, sollten Sie arg_nr$ auch für alle anderen Argumente verwenden.
dezimale Ganzzahl, mit der Sie die minimale Feldbreite festlegen. Wenn die umzuwandelnde Zeichenkette aus weniger Zeichen besteht als durch feldbreite bestimmt, wird sie rechtsbündig ausgegeben. Wollen Sie eine linksbündige Ausgabe, so müssen Sie vor der dezimalen Ganzzahl einen Bindestrich - angeben. Beginnt feldbreite mit einer Null, so wird das Feld bei rechtsbündiger Ausgabe statt mit Leerzeichen mit Nullen aufgefüllt. Statt einer Zahl können Sie bei feldbreite auch einen Stern * einsetzen. In diesem Fall bestimmt dann ein ganzzahliges Argument die Feldbreite. Dieses Argument muss vor der umzuwandelnden Zeichenkette stehen. Die Angabe eines Sterns * funktioniert jedoch nur dann, wenn arg_nr$ nicht verwendet wird.
dezimale Ganzzahl, mit der Sie angeben, wieviele Zeichen der umzuwandelnden Zeichenkette maximal ausgegeben werden sollen. Vor dieser Zahl muss ein Punkt stehen. Ist die Zahl Null, wird nichts ausgegeben. Negative Zahlen werden wie positive Zahlen behandelt. Die Ausgabe richtet sich immer nach dieser Zahl, auch wenn Sie für feldbreite eine andere Zahl eingegeben haben.
Folgende konvertierungszeichen können Sie bei printf verwenden:
Bei s werden alle Zeichen der Zeichenkette ausgegeben, bis die bei genauigkeit angegebene Zeichenzahl erreicht wird. Ist genauigkeit nicht angegeben, wird die gesamte Zeichenkette ausgegeben. Bei b kann die Zeichenkette in arg Sonderzeichen enthalten. printf unterstützt hier alle vom Kommando echo interpretierten Escape-Sequenzen, d.h. die oben angegebenen Escape-Sequenzen mit der Ausnahme, dass Oktalzahlen als \0oktal angegeben werden, und zusätzlich \c. \c bewirkt, dass printf die Ausgabe an dieser Stelle abbricht und nicht mit einem Neue-Zeile-Zeichen abschließt. Den Konvertierungszeichen d, u, o, x und X kann die Angabe ll vorangestellt werden. Dann wird das Argument nicht als [un]signed long int sondern als [un]signed long long int interpretiert. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos printf: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. LC_NUMERIC Legt die internationale Umgebung für die numerische Ausgabe fest. Diese Variable beeinflusst das Format der Zahlen, die bei den Konvertierungszeichen e, E, f, g und G verwendet werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel 1
Sie wollen auf dem Bildschirm „Guten Morgen Heike“ ausgeben.
Folgendes Kommando erzielt die gleiche Wirkung:
|
Beispiel 2
Sie wollen die ersten 6 Zeichen Ihres HOME-Dateiverzeichnisses /usr/huber mit einer entsprechenden Meldung ausgeben.
Die ersten 6 Zeichen von /usr/huber sind /usr/h. |
Beispiel 3
Sie wollen eine 4stellige Zahl in ein 8stelliges Feld rechtsbündig, rechtsbündig mit führenden Nullen und anschließend linksbündig ausgeben.
|
Siehe auch
awk, bc, echo printf() [4] |