Erinnerst du dich, dass du in deinem Sprachunterricht etwas über Wurzelwörter gelernt hast? Für Englischsprachige wie mich besteht ein Großteil unserer Sprache aus griechischen und lateinischen Wurzeln, mit zusätzlichen Präfixen und Suffixen, um neue Wörter zu erstellen. In ähnlicher Weise haben Befehle, die in mehreren Sprachen verwendet werden, routinemäßig eine gemeinsame Namenskonvention und können sogar ähnliche Aufgaben ausführen.
Der printf
command geht auf die Entwicklungswelt zurück, bietet aber auch dem Systemadministrator praktischen Nutzen. Abgeleitet von print
Funktion in C-Programmiersprachen bietet sie dem Benutzer die Möglichkeit zum Drucken eine formatierte Zeichenfolge der Ausgabe. Es funktioniert mit Text, numerischer Ausgabe oder einer Kombination aus beidem. Dies kann in Verbindung mit einer Variablen sehr leistungsfähig sein.
Die Syntax
Die Befehlssyntax von printf
ist laut Manpage ziemlich einfach, kann aber schnell verwirrend werden. Die grundlegende Syntax lautet wie folgt:
printf FORMAT [ARGUMENT]...
printf OPTION
Im ersten Beispiel FORMAT ändert die Ausgabe auf die gleiche Weise wie in den C-Sprachen.
Wo es komisch wird...
Hier werden drei Arten von Objekten beschrieben:Standardzeichen, interpretierte Zeichen und Konvertierungsspezifikationen. Sehen wir uns alle drei unten an:
1. Direkt in die Ausgabe eingefügte Standardzeichen.
2. Interpretierte Zeichen, gekennzeichnet durch \
(siehe unten):
Häufig interpretierte Zeichen:
\" | doppeltes Anführungszeichen |
\\ | Backslash |
\b | Rücktaste |
\c | erzeugen keine weitere Ausgabe |
\e | entkommen |
\n | neue Zeile |
\t | horizontaler Tab |
\v | vertikaler Tabulator |
3. Konvertierungsspezifikationen (ändert, wie ein Argument in die Ausgabe übersetzt wird).
Jede Konvertierungsspezifikation wird durch den %
gekennzeichnet und endet mit einem Umwandlungszeichen (siehe unten):
d, i | Eine Ganzzahl (als Dezimalzahl ausgedrückt) |
u | Eine Ganzzahl (ausgedrückt als Dezimalzahl ohne Vorzeichen) |
x, X | Eine Ganzzahl (ausgedrückt als Hexadezimalzahl ohne Vorzeichen) |
o | Eine Ganzzahl (ausgedrückt als vorzeichenloses Oktal) |
s | Eine Zeichenfolge |
c | Eine Ganzzahl (ausgedrückt als ASCII) |
Es gibt noch andere, aber dies sind einige der häufigsten.
Sehen wir uns als Nächstes die Nutzung an.
[Das könnte Ihnen auch gefallen: 11 Linux-Befehle, ohne die ich nicht leben kann]
Grundlegende Verwendung
Die grundlegendsten Anwendungsfälle für printf
gibt Textstrings aus, ohne einen Fehler zu erhalten.
Hier zu sehen:
[tcarrigan@client ~]$ printf "Hello World."
Hello World.
Wenn Sie etwas fortgeschrittener werden möchten, können Sie Folgendes tun:
[tcarrigan@client ~]$ printf "Hi, my name is Tyler. I write for %s. A great publication for system administrators." "Enable Sysadmin."
Hi, my name is Tyler. I write for Enable Sysadmin. A great publication for system administrators.
Das obige Beispiel ist aufgrund der Verwendung eines STRING nur geringfügig fortgeschrittener . Das FORMAT Teil des Befehls ist in doppelten Anführungszeichen enthalten. Wir haben eine Conversion-Spezifikation (STRING ), die "Enable Sysadmin" anstelle von %
ausgibt s.
Sie können auch printf
verwenden in Verbindung mit Umgebungsvariablen, um einige ziemlich nette Dinge zu tun. Ein einfaches Beispiel dafür kann getestet werden, indem Folgendes übergeben wird:
[tcarrigan@client ~]$ printf "Hello, I am %s.\n" $LOGNAME
Hello, I am tcarrigan.
Dies übergibt den STRING als Umgebungsvariable $LOGNAME , das ist der Benutzername des Kontos, das den Befehl ausführt. Sie können den Unterschied unten sehen, nachdem Sie das Konto geändert haben:
[root@client ~]# printf "I am %s.\n" g$LOGNAME
I am groot.
Tut mir leid, ich konnte nicht anders.
[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ]
Zusammenfassung
Spaß beiseite, das printf
Der Befehl kann ein praktisches Werkzeug sein, insbesondere wenn Sie bereits Erfahrung mit den Programmiersprachen C haben. Wenn nicht, ist das Dienstprogramm immer noch da, aber Sie müssen etwas härter arbeiten, um die volle Leistung des Befehls zu nutzen.