Una visión de las variables de Linux en el lenguaje de scripts de shell - Parte 9

Una visión de las variables de Linux en el lenguaje de scripts de shell - Parte 9

Ya hemos escrito una serie de artículos sobre Scripting de carcasa de Linux que fue cálido bienvenido ese tiempo y era muy relevante incluso ahora. Aquí está el enlace a la colección de artículos sobre scripting de shell.

  1. Aprender Scripting de Shell Linux

Aquí en este artículo veremos el variables, su ejecución y su implementación en shell script.

Variables de Linux Scripting de carcasa

Guardar una salida

La salida de un comando se puede redirigir a la 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 ahorrar la salida a la variable es la velocidad de examen más rápida. Las variables se guardan en la memoria y, por lo tanto, tiende a ser rápida en comparación con la recuperación del archivo.

Variables en el lenguaje de secuencias de comandos

Las variables son un componente importante utilizado en las secuencias de comandos y se declaran utilizando el comando bash "Declarar". Para declarar una variable decir 'nivel', necesitamos ejecutar el siguiente comando.

$ declarar nivel

Nota: Necesitamos usar "encasillar", Una declaración integrada para la compatibilidad de Korn Shell. El 'declarar' es más avanzado y contiene todas las características, por lo tanto, se recomienda cuando se usa bash.

Normas
  1. Un nombre de variable debe justificar, el uso de variable en el script.
  2. Se recomienda el mismo nombre de la variable en todo el programa.
  3. El nombre de las variables puede ser mayúscula y minúscula, pero los comandos del shell de la convención están en minúsculas y, por lo tanto, debemos usar el nombre de las variables en mayúsculas, para eliminar cualquier confusión. mi.gramo., Total_billed_amount, sell_report, order_RECEIPT, etc.

Implementación

A una variable se le puede asignar un valor utilizando un signo igual (=). Para asignar una cadena vacía a una variable, no debemos suministrar ningún valor después de igual signo.

$ Nivel =

Verifique el valor almacenado en la variable 'nivel' como.

$ printf "%i" $ nivel

printf, el comando la mayoría de 'C'Los programadores son conscientes, imprime datos. %i - Representa entero. Podemos reemplazarlo con %C para el carácter o %C para cadena, cuando sea necesario.

$ Nivel: tenga en cuenta el 'ps'que funciona como sustitutor de valor para la variable'NIVEL'.

Salida de muestra
$ printf "%i" $ nivel 0

Asignar un valor a la variable.

$ Nivel = 0

Verifique los datos almacenados en variable.

$ printf "%i" $ nivel 0

NOTA: Es interesante observar 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, pero el script de shell maneja la declaración variable de manera diferente.

Asignar un nuevo valor a la variable.

$ Nivel = 121

Verifique los datos almacenados en variable.

$ printf "%i" $ nivel 121

Desastar una variable

Declarar es un comando bash y crea variable solo cuando se ejecuta. La variable así creada permanece en la memoria hasta que el script se detiene o la variable se destruye.

$ Nivel Unset

Variables predefinidas en Bash

Bash ha terminado 50 Variables predefinidas. Algunas de estas variables tienen un significado especial adjunto a Bash E.gramo., una variable ALEATORIO emite un número aleatorio. Si no es establecido y luego se define nuevamente, el valor 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 de Bash útiles.

  1. Bash-el nombre completo de Bash.
  2. Bash_env-in un script de shell, el nombre del archivo de perfil ejecutado antes de que se iniciara el script.
  3. Bash_version-la versión de Bash (por ejemplo, 2.04.0 (1) -lelase).
  4. Columnas: el número de caracteres por línea en su pantalla (por ejemplo, 80).
  5. Nombre de host-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 totalmente calificado.
  6. HostType-Type of Computer.
  7. Inicio: el nombre de su directorio de casa.
  8. Ostipo: el nombre del sistema operativo.
  9. Lista de rutas de búsqueda separada por la ruta-colon para encontrar un comando para ejecutar.
  10. PPID-la identificación del proceso del proceso principal del shell.
  11. Apt_command-command para ejecutar antes de la configuración de la cadena de solicitud primaria de PS1.
  12. PWD-El directorio de trabajo actual (según lo establecido por el comando CD).
  13. Retornos aleatorios Un número aleatorio entre 0 y 32767 cada vez que se hace referencia.
  14. Shell-el caparazón preferido para usar; Para programas que inician un shell para ti.
  15. Término: el tipo de emulación terminal (por ejemplo, consola).

La regla de la división de palabras.

$ Nivel = 0 $ printf "%i" $ nivel 0 y $ nivel = "0" $ printf "%i" $ nivel 0

En ambos casos, la salida sigue siendo la misma. Entonces, ¿cuál es la diferencia en el resultado al usar la cita??

Vamos a verificar lo mismo con diferentes datos variables.

$ Nivel = 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" $ nivel 0

Sin mencionar que la salida no es correcta. Bash está tomando 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 la cita para las variables como se muestra a continuación.

$ Nivel = ”0; 1; 2; 3; 4; 5 "$ printf"%s "$ nivel 0; 1; 2; 3; 4; 5

Aún así, el resultado no es correcto. Bash tomó los valores variables y eliminó todos los espacios entre ellos. Por eso printf no interpretó 0,1,2,3,4,5 como valores distintos. Entonces, ¿cuál es la solución??

printf "%s" "$ nivel" 0; 1; 2; 3; 4; 5

Sí! Poner la sustitución variable en cotizaciones es la solución. Citas grupos de personajes en shell e interpretan los caracteres especiales de una manera significativa.

Las cotizaciones se pueden usar de forma consecutiva y es una buena idea adjuntar sustituciones variables con citas. Además, se puede usar para separar el texto general de las citas. Aquí hay un ejemplo.

$ Nivel = 5 $ flag_message = "He liquidado el nivel" "$ nivel" ". Merezco aprecio."$ printf"%s "" $ flag_message "
"He despejado nivel 5. Merezco aprecio."

Separar trozos de texto citado con espacio dará como resultado el mismo problema que se discutió anteriormente. La fiesta tratará el espacio en blanco como terminación. Otra forma de sustitución variable es.

$ Nivel = 5 $ flag_message = "He liquidado el nivel $ nivel. Merezco aprecio."$ printf"%s "" $ flag_message "" He aclarado el nivel 5. Merezco aprecio."

Las citas individuales restringen la fiesta de la impresión de caracteres especiales.

$ printf "%s" '$ flag_message' "$ flag_message"

La barra invernal (/)

Back -slash funciona como una sola cita para un personaje. ¿Has pensado cómo imprimirás (")?

$ printf "%c" "\" ""

Cuando %Q agrupado con printf, Proporciona barra inalcástica después de cada palabra para garantizar el espacio de palabras.

$ Nivel = 5 $ flag_message = ""He liquidado el nivel $ nivel. Merezco aprecio.""$ printf""%q """" $ flag_message """" i \ he \ aclarado \ nivel \ 5.\ I \ merece \ aprecio.""

Eso es todo por ahora. Siempre tratamos de proporcionar a nuestros lectores artículos que son útiles para ellos de vez en cuando. El artículo cubierto anterior es vasto, 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 variable' etc.

Hasta entonces, estad atentos y conectado a Tecmenta.comunicarse. No olvide proporcionarnos sus valiosos comentarios en la sección de comentarios a continuación.

"