...

Instituto Politécnico Nacional

Escuela Superior de Cómputo

Recurso Didáctico Digital

Unidad 1: Estructura de un sistema operativo
...
1.5.1 Argumentos y variables

Es un tipo de variables que se envían al proceso shell cuando se llama. Es un argumento de proceso, los argumentos de asignación de valor se agregan a la derecha del nombre del proceso cuando se invoca.

  • Asignación de valor: Son argumentos que se añaden a la derecha del nombre del proceso cuando éste es invocado.
  • Se utiliza una variable: Dentro del proceso Shell, se les denomina como:
    • $1 para el primer parámetro, aquel que se encuentra justo a la derecha del nombre del proceso shell.
    • $2 para el segundo parámetro.
    • $3 para el tercer parámetro, etc.

Hay un límite de nueve argumentos que se pueden citar: de $1 a $9. No obstante, la orden de cambio produce un desplazamiento hacia la derecha en la referencia de argumentos:

  • $1 para el segundo.
  • $2 para el tercero.

  • $1 para el tercero.
  • $2 para el cuarto, etc.

De esta manera, se puede crear un procedimiento que pueda abordar más de nueve argumentos.

Se puede acceder a todos los argumentos de otra manera utilizando $*. Cuando se usa el procedimiento shell, esta variable se expande a todos los argumentos especificados.

El parámetro $# recibe el valor de todos los argumentos especificados.

Variables

Los shells soportan dos clases de variables: locales, que pertenecen al shell que estamos usando y no se declaran cuando salimos del shell, y globales, que permanecen activas, aunque cambiemos de shell.

Las variables se clasifican en dos categorías:

  • De entorno:
    • Sintaxis: nombreVariable=valor
    • Uso de la variable: El símbolo $ se puede agregar al nombre de la variable para obtener el valor asignado.
  • Argumentos para los procedimientos shell.

Es posible crear y utilizar estas variables tanto dentro de un proceso shell como en el modo interactivo desde el indicador del sistema.

Es crucial tener en cuenta que una variable solo tendrá un valor dentro del proceso para el que fue creada.

Estas son algunas variables de entorno que se muestran en la siguiente imagenLa siguiente imagen muestra algunas variables de entorno.

Fig 22. tabla de variables en shell

Hay que ejecutar la orden establecida para ver el valor de todas las variables definidas en un instante determinado.

El valor que se le da a una variable puede afectar a otra variable. En situaciones como esta, es conveniente y a veces necesario identificar el nombre de la variable entre corchetes.

Cuando hay varias palabras separadas por espacios en el valor asignado, se deben usar comillas para mantener estos espacios en la definición de la variable.

La salida de una orden UNIX se puede asignar como valor de una variable. En este ejemplo, la orden UNIX se cierra entre caracteres con acento grave (`) después de igual.

La lectura de valores utilizando READ es una asignación externa a las variables del shell.

La sentencia READ se puede usar para capturar los valores de las variables del shell a través del teclado o de otros ficheros, lo que es similar a la lectura de una variable en cualquier lenguaje de programación.

Estos son algunos ejemplos de uso de variables.

#!/bin/bash #Ejemplo 1: Variable numérica entera edad=25 echo "Mi edad es $edad años."
#Ejemplo 2: Variable de cadena nombre="Juan" echo "Mi nombre es $nombre."
#Ejemplo 3: Variable de punto flotante precio=19.99 echo "El precio del artíuculo es $precio dólares."
#Ejemplo 4: Variable booleana activo=true if [ $activo = true ]; them   echo "La función está activa." else   echo "La función está desactivada." fi
#Ejemplo 5: Variable de array colores=("rojo" "verde" "azul") echo "Mis colores favoritos son ${colores[0]}, ${colores[1]} y ${colores[2]}."

Fig 23. Uso de variables en terminal

Variables shell predefinidas

El shell tiene una serie de variables de entorno predefinidas. Algunas de ellas se pueden cambiar asignándole un valor diferente al que está incorrecto. Algunos son solo de lectura y pueden ser usados, pero no modificados. Las variables predefinidas modificables más fascinantes son:

  • HOME: Su valor por defecto es la ruta del directorio del usuario. Es el argumento de la orden cd por defecto.
  • OSTYPE: Proporciona información sobre el tipo de sistema operativo de la computadora.
  • PATH: El grupo de directorios donde el sistema busca ficheros ejecutables se conoce como PATH.
  • PS1: Establece la cadena de caracteres que se mostrará como mensaje de advertencia del sistema. Su valor predeterminado es $.
  • PS2: Es un segundo prompt de sistema que se utiliza cuando se esperan entradas adicionales. Por defecto, despliega “>” para diferenciarse del prompt principal.
  • PS3: Es un tercer prompt, se caracteriza por desplegar un bucle de selección utilizando la palabra reservada “select”.
  • PWD: Su valor por defecto es el directorio de trabajo actual donde el usuario se encuentra ubicado.
  • RANDOM: Su valor es un número entero de 16 bits pseudo aleatorio en el rango de 0 a 32767.
  • SECONDS: Indica el número de segundos en los que un script de bash ha estado ejecutándose.
  • USER: Su valor por defecto es el directorio del usuario actual.