Shell Befehl printf
Das letzte Kapitel wir Shell gelernt echo Befehl, in diesem Kapitel werden wir einen anderen Ausgang Shell-Befehl printf lernen.
printf Befehl imitieren C-Bibliothek (Bibliothek) in der printf () Verfahren.
Standard-Definition, so Verwendung printf Skript besser als Echo Portabilität.
printf durch Leerzeichen ein Referenztext oder Parameter getrennt, können außerhalb des Printf verwendet werden, können Sie auch die Breite der Zeichenfolge, zu entwickeln und so weiter nach links und rechts Ausrichtung. Standard printf nicht automatisch einen Zeilenumbruch wie Echo hinzufügen, können wir hinzufügen \ n manuell.
printf Befehlssyntax:
printf format-string [argumentsde.]
Parameter Beschreibung:
- Format-String: Formatierungsstring
- Argumente: Die Liste der Parameter.
Beispiele sind wie folgt:
$ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell\n" Hello, Shell $
Als nächstes benutze ich ein Skript, um die leistungsstarke printf zu reflektieren:
#!/bin/bash # author:本教程 # url:www.w3write.com printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
Führen Sie das Skript, ist die Ausgabe wie folgt:
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
% S% c% d% f-Format sind Platzhalter
Siehe% -10s auf eine Breite von 10 Zeichen (- für linksbündig, rechtsbündig, sagte nein), werden alle Zeichen in 10 Zeichen breiten Zeichen angezeigt, wenn nicht genügend Speicherplatz automatisch ausgefüllt wird, wird es mehr als zufrieden zeigen sie alle.
Bezieht sich% -4.2f in Dezimal-Format, das bedeutet 0,2 2 Dezimalstellen.
Weitere Beispiele:
#!/bin/bash # author:本教程 # url:www.w3write.com # format-string为双引号 printf "%d %s\n" 1 "abc" # 单引号与双引号效果一样 printf '%d %s\n' 1 "abc" # 没有引号也可以输出 printf %s abcdef # 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用 printf %s abc def printf "%s\n" abc def printf "%s %s %s\n" a b c d e f g h i j # 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替 printf "%s and %d \n"
Führen Sie das Skript, ist die Ausgabe wie folgt:
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
Printf der Escape-Sequenz
Sequenz | Erklärung |
---|---|
\ A | Warncharakter, in der Regel die ASCII BEL Zeichen |
\ B | Rückzug |
\ C | Die Hemmung (nicht dargestellt) ausgegeben irgendwelchen Hinterzeilenumbrüche (gültig nur in der Parameterzeichenfolge unter dem% b Formatanzeige kontrolliert werden) sowie in beliebigen Zeichen in den Parametern nach links, und alle Parameter und alle späteren Aufenthalt in Format-String-Zeichen werden ignoriert |
\ F | FF (Seitenvorschub) |
\ N | einwickeln |
\ R | Geben Sie (Carriage Return) |
\ T | Horizontal tab |
\ V | Vertikale Reiter |
\\ | Eine wörtliche umgekehrten Schrägstrich |
\ DDD | Stellen Sie 1-3-stellige Oktalwert Zeichen. Gilt nur im Format-String |
\ 0ddd | Zeigt 1-3 Oktalwert des Charakters |
Beispiele
$ printf "a string, no processing:<%s>\n" "A\nB" a string, no processing:<A\nB> $ printf "a string, no processing:<%b>\n" "A\nB" a string, no processing:<A B> $ printf "www.w3write.com \a" www.w3write.com $ #不换行