El comando printf es similar a echo, pero brinda 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.
Si encuentra el siguiente error al ejecutar el comando printf:
printf: command not found
puede intentar instalar el siguiente paquete según su elección de distribución:
Distribución | Comando |
---|---|
OS X | instalación de preparación de coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
Alpino | apk agregar coreutils |
Arco Linux | pacman -S coreutils |
Kali Linux | apt-get install coreutils |
Cent OS | yum instalar coreutils |
Fedora | dnf instalar coreutils |
Raspbian | apt-get install coreutils |
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