Latest web development tutorials

commande Shell printf

Le dernier chapitre, nous avons appris Shell commande echo, dans ce chapitre, nous apprenons une autre sortie Shell commande printf.

commande printf imiter C bibliothèque (bibliothèque) dans la procédure printf ().

Définition standard, de sorte que le script utilisé printf mieux que d'utiliser la portabilité d'écho.

printf en utilisant un texte de référence ou des paramètres séparés par des espaces, peut être utilisé en dehors de la chaîne de format printf, vous pouvez également développer la largeur de la chaîne, et ainsi de suite alignement à gauche et à droite. Par défaut printf n'ajoute pas automatiquement un saut de ligne comme l'écho, nous pouvons ajouter \ n manuellement.

printf syntaxe de commande:

printf  format-string  [arguments...]

Description Paramètre:

  • format string: chaîne de commande de format
  • arguments: la liste des paramètres.

Des exemples sont les suivants:

$ echo "Hello, Shell"
Hello, Shell
$ printf "Hello, Shell\n"
Hello, Shell
$

Ensuite, j'utiliser un script pour refléter le printf puissant:

#!/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 

Exécuter le script, dont la sortie est la suivante:

姓名     性别   体重kg
郭靖     男      66.12
杨过     男      48.65
郭芙     女      47.99

% S% c% d format% f sont placeholders

% -10s Reportez-vous à une largeur de 10 caractères (- pour aligné à gauche, aligné à droite, a dit non), tous les caractères sont affichés en 10 caractères caractères larges, si l'espace est insuffisant est automatiquement rempli, il sera plus que le contenu montrer tous.

% -4.2f Désigne au format décimal, ce qui signifie .2 2 décimales.

Autres exemples:

#!/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" 

Exécuter le script, dont la sortie est la suivante:

1 abc
1 abc
abcdefabcdefabc
def
a b c
d e f
g h i
j  
 and 0

La séquence d'échappement de Printf

séquence explication
\ A caractère d'avertissement, généralement le caractère ASCII BEL
\ B retraite
\ C Inhibition (non représenté) de sortie dans tous les caractères de nouvelle ligne de fuite (valable uniquement dans la chaîne de paramètres sous le b indicateur de format% contrôlée), et, dans tous les caractères restants dans les paramètres et tous les paramètres et tout séjour ultérieur caractères de chaîne de format sont ignorés
\ F FF (formfeed)
\ N enveloppe
\ R Entrée (retour chariot)
\ T onglet Horizontal
\ V onglet Vertical
\\ Un caractère backslash littéral
\ Ddd Représenter caractères 1-3 chiffres valeur octal. Valable uniquement dans la chaîne de format
\ 0ddd Résultats 1-3 valeur octal du caractère

Exemples

$ 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 $                  #不换行