Sustitución variable anidada y variables bash predefinidas en Linux - Parte 11
- 5058
- 1278
- Claudia Baca
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 comandosAquí 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.
- « Enfoque orientado a objetos de la programación y encapsulación de Java - Parte 5
- Aprenda consejos y trucos de editor 'VI/VIM' útiles para mejorar sus habilidades - Parte 1 »