Los dos últimos artículos sobre BASH Shell, donde discutimos las variables en detalle, fueron muy apreciados entre nuestros lectores. Nosotros, estamos muy interesados en brindarle los temas más recientes, actualizados y relevantes cubiertos en detalle. Además, siempre tratamos de tocar las principales perspectivas de los temas correspondientes.
Variables anidadas en secuencias de comandos de Shell
Aquí está el último artículo sobre Variables de Linux donde veremos la sustitución de variables y las variables definidas en Shell antes de cerrar este tema.
Bash realiza la sustitución de variables antes de que se ejecute el comando. realmente ejecutado. Linux Bash Shell busca todo el signo “$” antes de ejecutar el comando y lo reemplaza con el valor de la variable. El proceso de sustitución de Variables de Bash se realiza solo una vez. ¿Qué pasa si tenemos variables anidadas?
Nota. Por variable anidada nos referimos a la variable declarada dentro de la variable. Veamos el escenario anterior en el ejemplo siguiente.
Declare una variable que sea de solo lectura y ejecutable como se muestra a continuación.
[email protected]: ~ $ declare-rx Linux_best_website = “www.tecmint .com
Verifique el valor de la variable almacenada.
[email protected]: ~ $ printf”% s “” $ Linux_best_website “www.tecmint.com
Ahora declare otra variable que nuevamente sea de solo lectura y ejecutable.
[email protected]: ~ $ declare-rx Linux_website =” Linux_best_website ”
Ahora la situación es que hemos definido dos variables.
‘Linux_best_website’, cuyo valor es “www.tecmint.com” y, ‘Linux_website’, cuyo valor es “Linux_best_website”
¿Cuál sería el resultado, si ejecutamos el siguiente comando de una línea?
[email protected]: ~ $ printf “% s” “$ Linux_website”
Primero debería reemplazar la variable ‘ $ Linux_website ‘, con el valor “ Linux_best_website ” y luego “ $ Linux_ best_website ”es nuevamente una variable cuyo valor es“ www.tecmint.com ”. Así que el resultado final de ejecutar el siguiente comando debería ser.
[email protected]: ~ $ printf “% s” “$ Linux_website” www.tecmint.com
Pero desafortunadamente, esta no es la situación, la El resultado que estamos obteniendo es Linux_best_website .
¿Por qué? ¡Sí! Bash sustituye el valor de la variable solo una vez. ¿Qué pasa con los scripts y programas complejos en los que necesitamos sustituir variables con frecuencia y también necesitamos sustituir la variable más de una vez?
Aquí viene el comando ‘ eval ‘ que realiza un trabajo adicional de sustitución de variables más de una vez en un script. Aquí hay un ejemplo para que todo el funcionamiento sea tan claro como el cristal.
Declare una variable x , cuyo valor es 10 .
[email protected]: ~/Desktop $ declare x = 10
Verifique el valor de la variable x , que acabamos de definir.
[email protected]: ~/Desktop $ echo $ yx x10
Declare una variable y , cuyo valor es x .
[email protected]: ~/Desktop $ declare y = x
Verifique el valor de la variable y , que acabamos de definir.
[email protected]: ~/Desktop $ echo $ yx
Aquí está el problema de BASH sustitución de variables una vez, que no realiza una ronda adicional de sustitución de variables. Estamos usando el comando ‘ eval ‘ para arreglar esto.
[email protected]: ~/Desktop $ eval y = $ x
Ahora verifique el valor de la variable ‘ y ‘.
[email protected]: ~/Desktop $ echo $ y 10
¡Hurra! El problema se solucionó y el comando ‘ eval. ganó la carrera 🙂
Sin mencionar que el comando ‘ eval ‘ es muy útil en programas de script grandes y es una herramienta muy útil.
La última pero no menos importante parte de esta publicación son las variables predefinidas de BASH. ¡No! Que no cunda el pánico al ver esta lista. Nunca es necesario recordar toda la lista antes de comenzar a escribir guiones, excepto algunos. Como parte del proceso de aprendizaje, presentamos la Lista de variables predefinidas de BASH.
No.. BASH VARIABLE. RESULT. 1 auto_resume Finalización del comando de proceso para los trabajos detenidos. 2 BASH PATH de la concha. 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 detallada de la versión. 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 dos puntos. 13 COLUMNAS Número de caracteres por línea en Salida estándar. 14 EUID ID de usuario del usuario actual. 15 FCEDIT El editor de texto predeterminado para el comando fc. 16 FUNCNAME El nombre de la diversión 17 GRUPOS Grupos de los que el usuario es miembro. 18 HISTFILE El archivo que contiene el historial de comandos. 19 INICIO El nombre de su directorio personal. 20 LÍNEAS Número de líneas horizontales en salida estándar. 21 MAIL Nombre de un archivo para comprobar si hay correo entrante 22 OSTYPE Nombre del sistema operativo. 23 OLDPWD El directorio de trabajo anterior 24 PWD El directorio de trabajo actual 25 RANDOM Imprime un número aleatorio 26 SHELL El shell preferido para usar 27 TIMEFORMAT El formato para el comando de tiempo. 28 UID El ID del usuario actual
Hay una lista enorme de Variables BASH predefinidas. Hemos intentado elaborar una lista de los que se utilizan con más frecuencia.
Eso es todo por ahora.