El comando printf es similar a echo pero proporciona al usuario mucho más control sobre cómo se formatea la salida. Puede proporcionar varios caracteres de formato dentro del texto que desea generar, utilizando una barra invertida (\) para indicar cuándo se están utilizando. Por ejemplo:
# printf "Hello.\nWhat's your name?"
imprimirá:
Hello. What's your name?
Esto se debe a que \n es el carácter de formato de nueva línea y agrega automáticamente una nueva línea donde sea que se coloque.
El comando printf también admite caracteres de conversión, que utilizan un signo de porcentaje (%) para indicar cuándo se están utilizando. Los caracteres de conversión se usan normalmente en
scripts para cambiar la salida de una variable, como dictar el número de lugares decimales para imprimir después de un cálculo preciso.
Ejemplos de comando printf
1. Imprime un mensaje de texto:
# printf "%s\n" "Hello world"
2. Escriba un número entero en negrita azul:
# printf "\e[1;34m%.3d\e[0m\n" 42
3. Imprima un número flotante con el símbolo del euro Unicode:
# printf "\u20AC %.2f\n" 123.4
4. Imprime un mensaje de texto compuesto por variables de entorno:
# printf "var1: %s\tvar2: %s\n" "$VAR1" "$VAR2"
5. Almacene un mensaje formateado en una variable (no funciona en zsh):
# printf -v myvar "This is %s = %d\n" "a year" 2016