La commande printf est similaire à echo mais offre à l'utilisateur beaucoup plus de contrôle sur la façon dont la sortie est formatée. 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.
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