¿Cuál es la diferencia entre printf y eco en bash??

¿Cuál es la diferencia entre printf y eco en bash??
Es posible que deseemos organizar el resultado de una operación de Ubuntu de manera específica. Quizás deberíamos evitar los resultados hinchados y presentar información en un estilo conciso. Los comandos echo y printf también están construidos. Printf proporciona la creación de una cadena de formato y ofrece un estado de renuncia no cero cuando falla. Mientras que el eco normalmente sale con un estado de 0 y típicamente emite entradas encabezadas por el carácter final de la línea sobre este resultado estándar. El "printf" le brinda más opciones para el formato de salida que el "echo". A lo largo de esta breve lección, veremos cómo diseñar los resultados de la terminal utilizando las instrucciones de echo e printf en Ubuntu 20.04 Sistema Linux.

Ejemplo 01:

Para enfatizar y ver el funcionamiento de las declaraciones printf y eco, tengamos nuestro primer ejemplo simple y fácil de hacer. Tienes que abrir la aplicación de shell de consola para hacerlo. Para eso, use el "Ctrl+Alt+T" en la pantalla de escritorio de su Ubuntu 20.04 Sistema operativo Linux. La aplicación de la consola se abrirá en unos momentos, y para eso, no tiene que esperar mucho. Después de abrir el terminal, realizaremos declaraciones "printf" y "eco" por separado para ver cómo funcionan correctamente. Entonces, hemos intentado "printf" en el shell primero para imprimir el número de caracteres en una cadena "Linux" en nuestro shell.

El comando se ha utilizado con el indicador "-m" junto con la palabra clave "wc". El comando ha sido enumerado en la imagen a continuación. Después de ejecutar este comando presionando la tecla "Enter", obtuvimos 5 como resultado. Esto significa que el "printf" contiene solo 5 letras en él. Como el printf es una declaración estándar, es por eso que mostraría los argumentos en una forma formateada estándar mientras está en control.

$ printf 'Linux' | WC -M

Vamos a echar un vistazo a la declaración de "eco" ahora. Por lo tanto, la sintaxis general para el comando será la misma, pero la declaración "echo" se usará en lugar de "printf" aquí. La cadena proporcionada en el comando también es la misma. Cuando ejecutamos el comando en la consola, muestra el número 6 como resultado. ¿Por qué sucede eso cuando una cadena contiene solo 5 caracteres?? Esto se debe a que la declaración de "eco" también cuenta la "nueva línea" como su carácter de acuerdo con el manual de manual estándar de "Echo" Bash. Si agregamos algo de espacio antes o después de la cadena, también lo tomará como un personaje.

$ Echo 'Linux' | WC -M

Ejemplo 02: usando printf

Veamos el funcionamiento de la declaración "printf" primero en nuestro nuevo ejemplo. Crear un nuevo archivo bash "prueba.SH "con la utilización de un comando nano touch seguido del comando" nano "en el shell. El comando nano se usará para abrir el archivo dentro de un editor "nano". Después de que se haya abierto el archivo, hemos agregado la extensión BASH primero en la primera línea de un archivo. La variable "str" ​​se ha inicializado con un valor de cadena largo en él. Hemos declarado una variable incorporada "IFS" para usar el espacio como su valor delimitador.

Luego hemos usado el comando "Leer" en la línea siguiente para leer los valores de una variable de cadena como una matriz y guardarlo en la variable "ARR". La bandera "-ra" se ha utilizado aquí para este propósito especialmente. Después de esto, la declaración ECHO se utiliza aquí para informarnos sobre el tamaño de una variable de matriz "ARR". El bucle "para" se ha inicializado para iterar cada palabra desde una variable de cadena y mostrarla en el shell usando la instrucción "printf". Como sabemos, el printf no toma la siguiente línea como su próximo personaje automáticamente, por lo que hemos usado el carácter "\ n" dentro de la instrucción PRINTF para hacerlo. El bucle termina aquí, y el código se guardará con la ayuda de una tecla de acceso directo "Ctrl+S".

Para ver los resultados de la instrucción printf, ejecute el archivo con el comando "bash" para que funcione. La salida muestra el tamaño de una matriz, yo.mi., 9. Después de eso, cada palabra de una cadena se ha iterada utilizando el bucle "para" y se muestra en el terminal por separado en cada línea siguiente. Esto se ha hecho usando la cláusula "\ n" dentro de la cláusula "printf". De lo contrario, puede que no haya sucedido.

Prueba de $ bash.mierda

Ejemplo 03: Usando Echo

Dentro de este nuevo ejemplo, ilustraremos el funcionamiento de la declaración "Echo" en el script bash. Entonces, hemos abierto la misma "prueba.sh "encontrar con la ayuda de un comando" nano "en la consola de shell. El archivo se abre en el editor nano. Todo el código permaneció sin cambios,.mi., Soporte de bash, cadena "STR", variable IFS, declaraciones de lectura y bucles "para". El único cambio que tiene que hacer es: reemplazar la palabra "printf" con la palabra clave "echo" en el script bash.

Puede ver que también hemos agregado "\ n" dentro de la declaración "Echo" para ingresar a la nueva línea. Como todos sabemos, la declaración "Echo" siempre considera la nueva línea como un personaje adicional; por lo tanto, no formateará la salida como tal.

Ejecutemos el código para ver los resultados. En lugar de crear una brecha de 1 nueva línea, la declaración Echo considera el "\ n" como un personaje adicional. Por lo tanto, la salida parece algo a continuación.

Prueba de $ bash.mierda

Actualicemos el código para obtener los resultados requeridos. Entonces, después de abrir el archivo, hemos eliminado el carácter "\ n" de la cadena de instrucción ECHO. Guardó el código y dejó el archivo.

Después de ejecutar el código actualizado esta vez, nuevamente tenemos el tamaño de una matriz de cadenas como "9". Después de eso, todas las palabras de una matriz se han mostrado por separado, cada una en la siguiente línea.

Prueba de $ bash.mierda

Conclusión:

Esta guía contiene más de un ejemplo para ilustrar la funcionalidad y la diferencia de las declaraciones "printf" y "eco". Prefiere usar la declaración "printf" dentro de Bash porque está más estandarizado como "eco" comportamiento de los polos aparte en otras plataformas.