La commande printf est similaire à echo, mais offre à l'utilisateur beaucoup plus de contrôle sur le formatage de la sortie. Vous pouvez fournir différents caractères de format dans le texte que vous souhaitez générer, en utilisant une barre oblique inverse (\) pour indiquer quand ils sont utilisés. Par exemple :
# printf "Hello.\nWhat's your name?"
imprimera :
Hello. What's your name?
En effet, \n est le caractère de format de nouvelle ligne et ajoute automatiquement une nouvelle ligne où qu'elle soit placée.
La commande printf prend également en charge les caractères de conversion, qui utilisent un signe de pourcentage (%) pour indiquer quand ils sont utilisés. Les caractères de conversion sont généralement utilisés dans
les scripts pour modifier la sortie d'une variable, comme dicter le nombre de décimales à imprimer après un calcul précis.
Si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande printf :
printf: command not found
vous pouvez essayer d'installer le package ci-dessous selon votre choix de distribution :
Répartition | Commande |
---|---|
OS X | brew install coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
Alpin | apk ajouter coreutils |
Arch Linux | pacman -S coreutils |
Kali Linux | apt-get install coreutils |
CentOS | yum install coreutils |
Fédora | dnf install coreutils |
Raspbian | apt-get install coreutils |
Exemples de commande printf
1. Imprimez un SMS :
# printf "%s\n" "Hello world"
2. Écrivez un entier en bleu gras :
# printf "\e[1;34m%.3d\e[0m\n" 42
3. Imprimez un nombre flottant avec le signe Euro Unicode :
# printf "\u20AC %.2f\n" 123.4
4. Imprimez un SMS composé de variables d'environnement :
# printf "var1: %s\tvar2: %s\n" "$VAR1" "$VAR2"
5. Stocker un message formaté dans une variable (ne fonctionne pas sur zsh) :
# printf -v myvar "This is %s = %d\n" "a year" 2016