Latest web development tutorials

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  [arguments...]

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.w3big.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.w3big.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.w3big.com \a"
www.w3big.com $                  #不换行