El comando printf sólo está disponible en las shell más recientes. X/Open sugirió que debería usarse antes que echo para generar las salidas formateadas, pero parece que pocos han seguido el consejo.
La sintaxis es:
La cadena de formato es muy similar a la usada en C o C++, con algunas restricciones. Principalmente, no se acepta el punto flotante, porque toda la aritmética de la shell se ejecuta como enteros. La cadena de formato está compuesta por una combinación de caracteres literales, de secuencias de escape y de especificaciones de conversión. Todos los caracteres de la cadena que no sean % y \ aparecen literalmente en los datos de salida. Se aceptan las secuencias de escape de la tabla de abajo:
El especificador de conversión es bastante complejo, por eso vamos a comentar únicamente los más usados. En el manual básico online podrá encontrar más información, así como en las páginas printf de la sección 1 del manual online (man 1 printf). (Si no lo encontramos en la sección 1 del manual, inténtelo en la sección 3). El especificador de conversión está compuesto de un carácter %, seguido de un carácter de conversión. Las principales conversiones aparecen en la siguiente tabla:
La cadena de formato se usa después para interpretar el resto de parámetros y para enviar el resultado, tal como mostramos en el siguiente ejemplo:
Al omitir la secuencia de escape \n al final, vemos que el prompt de comando aparece a continuación de la salida del comando printf. Vamos a corregir el problema:
Tenga en cuenta que debe usar las cadenas con comillas (” “) para proteger la cadena Estamos las
y convertirla en un único parámetro.