¿Recuerdas haber aprendido sobre las raíces de las palabras en tus clases de idiomas? Para los angloparlantes, como yo, gran parte de nuestro idioma se compone de raíces griegas y latinas, con prefijos y sufijos agregados para crear nuevas palabras. Del mismo modo, los comandos que se utilizan en varios idiomas suelen tener una convención de nomenclatura común e incluso pueden realizar tareas similares.
El printf
El comando tiene sus raíces en el mundo del desarrollo, pero también ofrece una utilidad práctica para el administrador del sistema. Derivado de print
función en lenguajes de programación C, proporciona al usuario la capacidad de imprimir una cadena formateada de salida. Funciona con texto, salida numérica o una combinación de ambos. Esto puede ser poderoso cuando se combina con una variable.
La sintaxis
La sintaxis del comando de printf
es bastante sencillo de acuerdo con la página de manual, sin embargo, puede volverse confuso rápidamente. La sintaxis básica es la siguiente:
printf FORMAT [ARGUMENT]...
printf OPTION
En el primer ejemplo, FORMAT altera la salida de la misma manera que lo haría en los lenguajes C.
Donde se pone raro...
Aquí se describen tres tipos de objetos:caracteres estándar, caracteres interpretados y especificaciones de conversión. Veamos los tres a continuación:
1. Caracteres estándar insertados directamente en la salida.
2. Caracteres interpretados marcados por \
(visto a continuación):
Caracteres comunes interpretados:
\" | comillas dobles |
\\ | barra invertida |
\b | retroceso |
\c | no producir más resultados |
\e | escapar |
\n | nueva línea |
\t | pestaña horizontal |
\v | pestaña vertical |
3. Especificaciones de conversión (cambia la forma en que un argumento se traduce a la salida).
Cada especificación de conversión se indica mediante el %
y termina con un carácter de conversión (visto a continuación):
d, i | Un número entero (expresado como decimal) |
u | Un número entero (expresado como un decimal sin signo) |
x, X | Un número entero (expresado como hexadecimal sin signo) |
o | Un número entero (expresado como octal sin signo) |
s | Una cadena |
c | Un número entero (expresado como ASCII) |
Hay otros, sin embargo, estos son algunos de los más comunes.
A continuación, veamos el uso.
[ También te pueden interesar:11 comandos de Linux sin los que no puedo vivir ]
Uso básico
Los casos de uso más básicos para printf
está generando cadenas de texto sin recibir un error.
Visto aquí:
[tcarrigan@client ~]$ printf "Hello World."
Hello World.
Si quisieras avanzar un poco más, podrías hacer algo como esto:
[tcarrigan@client ~]$ printf "Hi, my name is Tyler. I write for %s. A great publication for system administrators." "Enable Sysadmin."
Hi, my name is Tyler. I write for Enable Sysadmin. A great publication for system administrators.
El ejemplo anterior es solo un poco más avanzado debido al uso de una STRING . El FORMATO parte del comando está contenida entre comillas dobles. Tenemos una especificación de conversión (STRING ) que genera "Habilitar Sysadmin" en lugar de %
s.
También puedes usar printf
junto con las variables ambientales para hacer algunas cosas bastante interesantes. Se puede probar un ejemplo simple de esto pasando lo siguiente:
[tcarrigan@client ~]$ printf "Hello, I am %s.\n" $LOGNAME
Hello, I am tcarrigan.
Esto pasa la STRING como la variable ambiental $LOGNAME , que es el nombre de usuario de la cuenta que ejecuta el comando. Puede ver la diferencia a continuación después de cambiar de cuenta:
[root@client ~]# printf "I am %s.\n" g$LOGNAME
I am groot.
Lo siento, no pude evitarlo.
[ ¿Quiere poner a prueba sus habilidades de administrador de sistemas? Tome una evaluación de habilidades hoy. ]
Resumen
Bromas aparte, el printf
El comando puede ser una herramienta útil, específicamente si ya tiene algo de experiencia con los lenguajes de programación C. Si no, la utilidad sigue ahí, pero tendrá que esforzarse un poco más para aprovechar toda la potencia del comando.