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