Startseite > Textverarbeitung & Suche > printf

printf: Formatierte Ausgabe

printf ist ein Befehl, der ähnlich der printf-Funktion in der C-Sprache Daten gemäß einer angegebenen Formatzeichenkette an die Standardausgabe ausgibt. Sie können Variablen oder literale Werte in verschiedenen Formaten (Ganzzahl, Gleitkommazahl, Zeichenkette usw.) formatieren und Sonderzeichen mithilfe von Escape-Sequenzen einfügen. Es ermöglicht eine präzisere Steuerung der Ausgabe als der echo-Befehl.

Übersicht

`printf` steuert die Ausgabe präzise mithilfe einer Formatzeichenkette und von Argumenten. Dies wird in Skripten für verschiedene Zwecke wie die Erstellung von Berichten und die Formatierung von Protokollnachrichten verwendet.

Hauptmerkmale

  • Unterstützung für verschiedene Formatbezeichner (%s, %d, %f usw.)
  • Unterstützung für Escape-Sequenzen (\n, \t, \x usw.)
  • Ausgabe nach Datentyp wie Ganzzahl, Gleitkommazahl, Zeichenkette
  • Steuerung von Ausgabebreite, Genauigkeit und Ausrichtung möglich

Wichtige Optionen (Formatbezeichner und Escape-Sequenzen)

Der Befehl `printf` steuert seine Funktion nicht durch traditionelle Optionen, die mit `-` beginnen, sondern durch 'Formatbezeichner' und 'Escape-Sequenzen', die in der Formatzeichenkette enthalten sind. Hier sind einige häufig verwendete:

Formatbezeichner

Escape-Sequenzen

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`printf` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Beispiele für die Verwendung von `printf` mit verschiedenen Formatbezeichnern und Escape-Sequenzen.

Einfache Zeichenkettenausgabe

printf "Hello, World!\n"

Gibt eine einfache Zeichenkette aus und fügt einen Zeilenumbruch hinzu.

Gemischte Ausgabe von Ganzzahlen und Zeichenketten

printf "Name: %s, Alter: %d Jahre\n" "Hong Gildong" 30

Formatiert und gibt Ganzzahlen und Zeichenketten zusammen aus.

Festlegen der Genauigkeit von Gleitkommazahlen

printf "Pi: %.2f\n" 3.141592

Gibt eine Gleitkommazahl mit zwei Dezimalstellen aus.

Ausgabebreite und Ausrichtung

printf "%-10s %5d\n" "Produktname" 123

Richtet eine Zeichenkette linksbündig in 10 Spalten aus und eine Ganzzahl rechtsbündig in 5 Spalten.

Hexadezimal- und Oktalausgabe

printf "Dezimal: %d, Hexadezimal: %x, Oktal: %o\n" 255 255 255

Gibt Zahlen in Hexadezimal- und Oktalform aus.

Verwendung mit Variablen

NAME="Kim Cheolsu"
SCORE=95
printf "Schüler: %s, Punktzahl: %d Punkte\n" "$NAME" "$SCORE"

Verwendet Shell-Variablen als Argumente für `printf` zur Ausgabe.

Tipps & Hinweise

Tipps und zu beachtende Punkte für die effektive Nutzung von `printf`.

Unterschied zu echo

echo wird hauptsächlich für einfache Zeichenkettenausgaben verwendet und ist bei der Interpretation von Escape-Sequenzen (erfordert die Option -e) oder der Formatierung eingeschränkt. printf hingegen kann das Ausgabeformat über Formatbezeichner präzise steuern und interpretiert Escape-Sequenzen immer.

  • Escape-Sequenzen: printf interpretiert Escape-Sequenzen immer. echo benötigt die Option -e.
  • Formatierung: printf unterstützt verschiedene Formatbezeichner wie %s, %d usw., um das Ausgabeformat fein abzustimmen. echo hat diese Funktionalität nicht.
  • Zeilenumbruch: echo fügt standardmäßig nach der Ausgabe einen Zeilenumbruch hinzu, während printf explizit \n angeben muss.

Übereinstimmung von Formatzeichenkette und Argumenten

Die Anzahl der Formatbezeichner in der Formatzeichenkette muss mit der Anzahl der bereitgestellten Argumente übereinstimmen. Wenn Argumente fehlen, können je nach Shell Standardwerte (z. B. 0 oder eine leere Zeichenkette) verwendet werden, und wenn zu viele Argumente vorhanden sind, werden die überschüssigen Argumente ignoriert. Dies kann zu unerwarteten Ergebnissen führen, daher ist Vorsicht geboten.

Vorsicht bei der Verwendung von Escape-Sequenzen

Insbesondere zur Ausgabe eines \-Zeichens müssen Sie es zweimal als \\ angeben. Da die Shell möglicherweise zuerst den Backslash interpretiert, ist möglicherweise eine Escapierung erforderlich, bevor er an printf übergeben wird. Im Allgemeinen ist es sicher, die Formatzeichenkette in doppelte Anführungszeichen (") zu setzen.



Gleiche Kategorie Befehle