Sustitución variable anidada y variables bash predefinidas en Linux - Parte 11

Sustitución variable anidada y variables bash predefinidas en Linux - Parte 11

Los últimos dos artículos sobre Bash Shell, donde discutimos las variables en detalle fueron muy apreciados entre nuestros lectores. Nosotros como Equipo de tecrint están muy interesados ​​en proporcionarle temas más recientes, actualizados y relevantes cubiertos en detalles. Además, siempre tratamos de tocar las principales perspectivas de los temas correspondientes.

Variables anidadas en las secuencias de comandos

Aquí está el último artículo sobre variables de Linux donde veremos la sustitución de las variables y las variables definidas en el shell antes de cerrar este tema.

Bash realiza una sustitución variable antes de que el comando se ejecute realmente. El shell bash de Linux busca todo el signo '$' antes de ejecutar el comando y reemplazarlo con el valor de la variable. El proceso de sustitución de variables bash se realiza solo una vez. ¿Qué pasa si tenemos variables anidadas??

Nota: Por variable anidada nos referimos, variable declarada dentro de la variable. Veamos el escenario anterior en el siguiente ejemplo.

Declarar una variable que es de solo lectura y ejecutable como se muestra a continuación.

[correo electrónico protegido]: ~ $ declare -rx linux_best_website = "www.tecmenta.com "

Verifique el valor de la variable almacenada.

[correo electrónico protegido]: ~ $ printf "%s" "$ linux_best_website" www.tecmenta.comunicarse

Ahora declare otra variable que nuevamente es de solo lectura y ejecutable.

[correo electrónico protegido]: ~ $ declare -rx linux_website = "linux_best_website"

Ahora la situación es que hemos definido dos variables.

'Linux_best_website', cuyo valor es "www.tecmenta.com "
y 'linux_website', cuyo valor es "linux_best_website"

¿Cuál sería el resultado, si ejecutamos el comando de una línea a continuación??

[correo electrónico protegido]: ~ $ printf "%s" "$ linux_website"

Primero debe reemplazar la variable '$ Linux_website', con valor "Linux_best_website" y luego "$ Linux_best_website"Es nuevamente una variable cuyo valor es"www.tecmenta.comunicarse". Entonces, la salida final de ejecutar el siguiente comando debe ser.

[correo electrónico protegido]: ~ $ printf "%s" "$ linux_website" www.tecmenta.comunicarse

Pero desafortunadamente, esta no es la situación, el resultado que estamos obteniendo es Linux_best_website.

Razón? Sí! Bash sustituye el valor de la variable solo una vez. ¿Qué pasa con los scripts y programas complejos en los que necesitamos sustituir las variables con frecuencia y necesitamos sustituir la variable más de una vez??

Aquí viene el comando 'evaluación'que realiza un trabajo adicional de sustitución variable más de una vez en un script. Aquí hay un ejemplo para que todo funcione tan claro como el vidrio.

Declarar una variable X, cuyo valor es 10.

[correo electrónico protegido]: ~/escritorio $ declarar x = 10

Verifique el valor de la variable X, Acabamos de definir.

[correo electrónico protegido]: ~/escritorio $ echo $ yx x10

Declarar una variable Y, cuyo valor es X.

[correo electrónico protegido]: ~/escritorio $ declarar y = x

Verifique el valor de la variable Y, Acabamos de definir.

[correo electrónico protegido]: ~/escritorio $ echo $ y x

Aquí está el problema de INTENTO Sustitución variable de tiempo, que no realiza una ronda adicional de sustitución variable. Estamos usando 'evaluación'Comando para solucionar esto.

[correo electrónico protegido]: ~/escritorio $ eval y = $ x

Ahora verifique el valor de la variable 'Y'.

[Correo electrónico protegido]: ~/Desktop $ Echo $ y 10

Hurra! El problema fue solucionado y 'evaluación'El comando ganó la carrera :)

Por no mencionar, 'evaluación'El comando es muy útil en programas de script grandes y es una herramienta muy útil.

La última, pero no menos importante, la parte de esta publicación son las variables predefinidas de Bash. No! No seas pánico viendo esta lista. Nunca necesitas recordar la lista completa antes de comenzar a escribir scripts, excepto algunos. Como parte del proceso de aprendizaje, presentamos la lista de variables predefinidas de Bash.

No. Variable BASH RESULTADO
1 renta Finalización del comando de proceso para los trabajos detenidos.
2 INTENTO Camino del caparazón.
3 Bash_env Muestra el nombre del archivo de perfil
4 Bash_version Muestra la versión de Bash
5 Bash_versinfo Muestra información de versión detallada.
6 Bash_versinfo [0] El número de versión principal (el lanzamiento).
7 Bash_versinfo [1] El número de versión menor (la versión).
8 Bash_versinfo [2] El nivel de parche.
9 Bash_versinfo [3] La versión de construcción.
10 Bash_versinfo [4] El estado de la versión (por ejemplo, beta1).
11 Bash_versinfo [5] El valor de machtype .
12 Cdpath Lista de directorios separados por colon.
13 Columnas Número de caracteres por línea en salida estándar.
14 Eúdico ID de usuario del usuario actual.
15 Fedit El editor de texto predeterminado para el comando FC.
dieciséis Nombre de función El nombre de la diversión
17 Grupos Grupos de los cuales el usuario es miembro.
18 Histórico El archivo que contiene el historial de comando.
19 HOGAR El nombre de su directorio de casa.
20 LÍNEAS Número de líneas horizontales en la salida estándar.
21 CORREO Nombre de un archivo para verificar el correo entrante
22 Ostipo Nombre del sistema operativo.
23 Oldpwd El directorio de trabajo anterior
24 Pwd El directorio de trabajo actual
25 ALEATORIO Imprime un número aleatorio
26 CAPARAZÓN El caparazón preferido para usar
27 FORMATO DE TIEMPO El formato para el comando de tiempo.
28 Uid La identificación del usuario actual

Hay una gran lista de variables bash predefinidas. Hemos tratado de producir una lista de más usados.

Eso es todo por ahora. Estaré aquí de nuevo con otro artículo interesante. Hasta entonces, estad atentos y conectado a Tecmenta. No olvide proporcionarnos sus valiosos comentarios en la sección de comentarios a continuación.