Estaciones de trabajo en línea OnWorks Linux y Windows

Logotipo

Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

Variables y constantes

Sin embargo, hay un problema con nuestro script. ¿Observa cómo se repite la cadena "Informe de información del sistema"? Con nuestro pequeño script no es un problema, pero imaginemos que nuestro script era muy largo y teníamos varias instancias de esta cadena. Si quisiéramos cambiar el título por otro, tendríamos que cambiarlo en varios lugares, lo que podría suponer mucho trabajo. ¿Qué pasaría si pudiéramos organizar el guión de modo que la cadena solo apareciera una vez y no varias veces? Eso facilitaría mucho el mantenimiento futuro del guión. Así es como podríamos hacer eso:



#! / Bin / bash


# Programa para generar una página de información del sistema


title = "Informe de información del sistema"


eco "

$ título

$ título

"

#! / Bin / bash


# Programa para generar una página de información del sistema


title = "Informe de información del sistema"


eco "

$ título

$ título

"


Al crear un variable llamado título y asignándole el valor “Informe de información del sistema”, podemos aprovechar la expansión de parámetros y colocar la cadena en múltiples ubicaciones.

Entonces, ¿cómo creamos una variable? Simple, simplemente lo usamos. Cuando el shell encuentra una variable, la crea automáticamente. Esto difiere de muchos lenguajes de programación en los que las variables deben ser explícitamente declaró o definido antes de su uso. El caparazón es muy laxo al respecto, lo que puede ocasionar algunos problemas. Por ejemplo, considere este escenario desarrollado en la línea de comando:


[yo @ linuxbox ~] $ foo = "sí" [yo @ linuxbox ~] $ echo $ foo si

[yo @ linuxbox ~] $ echo $ tonto


[yo @ linuxbox ~] $

[yo @ linuxbox ~] $ foo = "sí" [yo @ linuxbox ~] $ echo $ foo si

[yo @ linuxbox ~] $ echo $ tonto


[yo @ linuxbox ~] $


Primero asignamos el valor "sí" a la variable fooy luego mostrar su valor con echo. A continuación, mostramos el valor del nombre de la variable mal escrito como “tonto” y obtenemos un resultado en blanco. Esto se debe a que el shell creó felizmente la variable engañar cuando lo encontró, y le dio el valor predeterminado de nada, o vacío. De esto, aprendemos que debemos prestar mucha atención a nuestra ortografía. También es importante comprender lo que realmente sucedió en este ejemplo. De nuestra mirada anterior a cómo el shell realiza expansiones, sabemos que el comando:



[yo @ linuxbox ~] $ echo $ foo

[yo @ linuxbox ~] $ echo $ foo


sufre una expansión de parámetros y da como resultado:



[yo @ linuxbox ~] $ echo sí

[yo @ linuxbox ~] $ echo sí


Considerando que el comando:



[yo @ linuxbox ~] $ echo $ tonto

[yo @ linuxbox ~] $ echo $ tonto


se expande en:



[yo @ linuxbox ~] $ echo

[yo @ linuxbox ~] $ echo


¡La variable vacía se expande hasta convertirse en nada! Esto puede causar estragos en los comandos que requieren argumentos. He aquí un ejemplo:



[yo @ linuxbox ~] $ foo = foo.txt [yo @ linuxbox ~] $ foo1 = foo1.txt [yo @ linuxbox ~] $ cp $ foo $ fool

cp: falta el operando del archivo de destino después de `foo.txt '

[yo @ linuxbox ~] $ foo = foo.txt [yo @ linuxbox ~] $ foo1 = foo1.txt [yo @ linuxbox ~] $ cp $ foo $ fool

cp: falta el operando del archivo de destino después de `foo.txt '


Pruebe `cp --help 'para obtener más información.

Pruebe `cp --help 'para obtener más información.


Asignamos valores a dos variables, foo y Foo1. Luego realizamos un cp, pero escribe mal el nombre del segundo argumento. Después de la expansión, el cp El comando solo se envía un argumento, aunque requiere dos.

Existen algunas reglas sobre los nombres de variables:

1. Los nombres de las variables pueden constar de caracteres alfanuméricos (letras y números) y caracteres de subrayado.

2. El primer carácter de un nombre de variable debe ser una letra o un guión bajo.

3. No se permiten espacios ni símbolos de puntuación.

La palabra "variable" implica un valor que cambia, y en muchas aplicaciones, las variables se usan de esta manera. Sin embargo, la variable en nuestra aplicación, título, se utiliza como constante. Una constante es como una variable en el sentido de que tiene un nombre y contiene un valor. La diferencia es que el valor de una constante no cambia. En una aplicación que realiza cálculos geométricos, podríamos definir PI como una constante, y asígnele el valor de 3.1415, en lugar de usar el número literalmente a lo largo de nuestro programa. El shell no hace distinción entre variables y constantes; son principalmente para la conveniencia del programador. Una convención común es usar letras mayúsculas para designar constantes y letras minúsculas para variables verdaderas. Modificaremos nuestro script para cumplir con esta convención:



#! / Bin / bash

# Programa para generar una página de información del sistema TÍTULO= "Informe de información del sistema Para $ HOSTNAME" eco "

PSTÍTULO

PSTÍTULO

"

#! / Bin / bash

# Programa para generar una página de información del sistema TÍTULO= "Informe de información del sistema Para $ HOSTNAME" eco "

PSTÍTULO

PSTÍTULO

"


También aprovechamos la oportunidad para animar nuestro título agregando el valor de la variable shell

HOSTNAME. Este es el nombre de red de la máquina.


imagen

Nota: El caparazón en realidad proporciona una forma de hacer cumplir la inmutabilidad de las constantes, mediante el uso de la declarar comando incorporado con el -r (solo lectura) opción. Hubiéramos asignado TÍTULO de esta manera:


declare -r TITLE = "Título de la página"


el caparazón evitaría cualquier asignación posterior a TÍTULO. Esta función se utiliza con poca frecuencia, pero existe para scripts muy formales.


imagen


 

Top OS Cloud Computing en OnWorks: