Ya hemos escrito una serie de artículos sobre Linux Shell Scripting. que fue muy bien recibido en ese momento y fue muy relevante incluso ahora. Aquí está el enlace a la colección de artículos sobre secuencias de comandos de shell.
- Aprenda las secuencias de comandos de shell de Linux
Aquí, en este artículo, veremos las variables. su ejecución y su implementación en script de shell.
Secuencias de comandos de Shell de variables de Linux Guardar una salida
La salida de un comando se puede redirigir a una salida estándar o un archivo y también se puede almacenar en una variable. Si la salida de un comando es lo suficientemente grande como para que no se ajuste a la pantalla, solo nos queda la opción de guardar la salida en un archivo en una variable. Una ventaja de guardar los resultados en variables es una velocidad de examen más rápida. Las variables se guardan en la memoria y, por lo tanto, tienden a ser más rápidas en comparación con la recuperación de archivos.
Variables en el lenguaje de secuencias de comandos
Las variables son un componente importante utilizado en las secuencias de comandos de Shell y se declaran usando el comando bash “ Declare. ”. Para declarar una variable digamos ‘ nivel. , necesitamos ejecutar el siguiente comando.
$ declare LEVEL
Nota. : Necesitamos usar “ typecast. , una declaración incorporada para la compatibilidad con el shell korn. El ‘declare’ es más avanzado y contiene todas las características, por lo que se recomienda cuando se usa BASH.
Reglas
- Un nombre de variable debe justificar el uso de variable en el script.
- Se recomienda encarecidamente usar el mismo nombre de variable en todo el programa.
- El nombre de las variables puede estar tanto en mayúsculas como en minúsculas, pero por convención los comandos de shell están en minúsculas y, por lo tanto, debemos usar el nombre de las variables en mayúsculas, por lo que para eliminar cualquier confusión. p. ej., TOTAL_BILLED_AMOUNT, SELL_REPORT, ORDER_RECEIPT, etc.
Implementación freestar.config.enabled_slots.push
Se puede asignar una variable un valor con un signo igual ( =. . Para asignar una cadena vacía a una variable no debemos proporcionar ningún valor después del signo igual.
$ LEVEL =
Verifique el valor almacenado en la variable ‘LEVEL’ como.
$ printf “% i” $ NIVEL
printf. el comando que la mayoría de los programadores “ C. conocen, imprime datos. % i. Representa un número entero. Podemos reemplazarlo con % c. para Carácter o % c. para cadena, como y cuando sea necesario.
$ LEVEL: Tenga en cuenta el ‘ $. ‘que funciona como un sustituto de valor para la variable’ LEVEL ‘.
Ejemplo de salida $ printf “% i” $ LEVEL 0
Asignar un valor a la variable.
$ LEVEL = 0
Verifique los datos almacenados en la variable.
$ printf “% i” $ LEVEL 0
NOTA. : Es interesante notar que en ambos casos, cuando no asignamos el valor a la variable y cuando asignamos el valor ‘ 0. a la variable ‘ NIVEL. ‘salidas 0. Aunque la salida es la misma en ambos casos, el script de shell maneja ambas declaraciones de variables de manera diferente.
Asigne un nuevo valor a la variable.
$ LEVEL = 121
Verifique los datos almacenados en variable.
$ printf “% i” $ LEVEL 121 Desarmar una variable
Declare. es un comando BASH y crea una variable solo cuando se ejecuta. La variable así creada permanece en la memoria hasta que el script se detiene o la variable se destruye.
$ unset LEVEL Variables predefinidas en BASH
BASH tiene más de 50. variables predefinidas. Algunas de estas variables tienen un significado especial asociado a BASH, por ejemplo, una variable RANDOM. genera un número aleatorio. Si no se configura y luego se define nuevamente, el valor de la variable original se pierde para siempre. Por lo tanto, se recomienda no utilizar ninguna variable definida por el sistema.
Aquí hay una lista de algunas variables BASH útiles.
- BASH: el nombre de ruta completo de Bash.
- BASH_ENV: en un script de shell, el nombre del archivo de perfil ejecutado antes de que se iniciara el script.
- BASH_VERSION: la versión de Bash (por ejemplo, 2.04.0 (1)-release).
- COLUMNS: la cantidad de caracteres por línea en la pantalla (por ejemplo, 80).
- HOSTNAME: el nombre de la computadora. En algunas versiones de Linux, este puede ser el nombre de la máquina. En otros, puede ser un nombre de dominio completo.
- HOSTTYPE: tipo de computadora.
- HOME: el nombre de su directorio personal.
- OSTYPE— El nombre del sistema operativo.
- PATH: lista de rutas de búsqueda separadas por dos puntos para encontrar un comando para ejecutar.
- PPID: el ID de proceso del proceso principal del shell.
- PROMPT_COMMAND: comando para ejecutar antes de la configuración de la cadena del indicador principal de PS1.
- PWD: el directorio de trabajo actual (según lo establecido por el comando cd).
- RANDOM : Devuelve un número aleatorio entre 0 y 32767 cada vez que se hace referencia a él.
- SHELL: el shell preferido para usar; para programas que inician un shell por usted.
- TERM: el tipo de emulación de terminal (por ejemplo, consola).
La regla de división de palabras.
$ LEVEL = 0 $ printf “% i” $ LEVEL 0 Y $ LEVEL = ”0” $ printf “% i” $ LEVEL 0
En ambos casos, la salida sigue siendo la misma. Entonces, ¿cuál es la diferencia en el resultado al usar la cotización?
Comprobemos lo mismo con diferentes datos variables.
$ LEVEL = 0; 1; 2; 3; 4; 5 bash: 1: comando no encontrado bash: 2: comando no encontrado bash: 3: comando no encontrado bash: 4: comando no encontrado bash: 5: comando no encontrado $ printf “% i” $ LEVEL 0
No para mencionar, la salida no es correcta. BASH toma el espacio después de “ 0. como terminación y, por lo tanto, el valor de la variable se establece como “ 0. . Ahora intentamos usar comillas para las variables como se muestra a continuación.
$ LEVEL = ”0; 1; 2; 3; 4; 5 ”$ printf”% s “$ LEVEL 0; 1; 2; 3; 4; 5
Aún así, el resultado no es correcto. BASH tomó los valores de las variables y eliminó todos los espacios entre ellos. Por lo tanto, printf. no interpretó 0, 1, 2, 3, 4, 5 como valores distintos. Entonces, ¿cuál es la solución?
printf “% s” “$ LEVEL” 0; 1; 2; 3; 4; 5
¡Sí! Poner la sustitución de Variables entre comillas es la solución. Las citas agrupan los caracteres en el caparazón e interpretan los caracteres especiales de manera significativa.
Las citas se pueden usar una tras otra y es una buena idea incluir las sustituciones de variables entre comillas. Además, se puede utilizar para separar el texto general de las citas. Aquí hay un ejemplo.
$ LEVEL = 5 $ FLAG_MESSAGE = “HE ACABADO EL NIVEL” “$ LEVEL” “. Merezco reconocimiento.” $ printf “% s” “$ FLAG_MESSAGE” “HE BORRADO EL NIVEL5. Merezco aprecio “.
Separar fragmentos de texto entre comillas con espacio resultará en el mismo problema que se discutió anteriormente. El bash tratará los espacios en blanco como terminación. Otra forma de sustitución de variables es.
$ LEVEL = 5 $ FLAG_MESSAGE = “HE ACABADO EL NIVEL $ LEVEL. Merezco reconocimiento”. $ printf “% s” “$ FLAG_MESSAGE” “HE ACABADO EL NIVEL 5. Merezco un reconocimiento”.
Las comillas simples impiden que BASH imprima caracteres especiales.
$ printf “% s” ‘$ FLAG_MESSAGE’ “$ FLAG_MESSAGE” La barra invertida (/)
La barra invertida funciona como una comilla simple para un carácter. ¿Ha pensado cómo va a imprimir ( “)?
$ printf”% c “” “”
Cuando % q. se agrupe con printf. proporciona una barra invertida después de cada palabra para asegurar el espaciado entre palabras.
$ LEVEL = 5 $ FLAG_MESSAGE = “HE BORRADO EL NIVEL $ LEVEL. Merezco agradecimiento. “$ Printf“% q ”” $ FLAG_MESSAGE ““ HE DESPEJADO NIVEL 5. Me Merezco agradecimiento “.
Eso es todo por ahora. Siempre tratamos de proporcionar a nuestros lectores artículos que sean útiles para ellos de vez en cuando. El artículo cubierto anteriormente es amplio, por lo tanto, el resto de los temas con ejemplos se producirán en el próximo artículo que incluirá ‘Atributos de variable’, ‘Exportación de variable’, etc.
Hasta entonces Esté atento y conectado a Tecmint.com. No olvide enviarnos sus valiosos comentarios en el sección de comentarios a continuación.