Práctica Variables del Shell
Variables del Shell.
El shell de Linux no es otra cosa que una orden que se ejecuta al acceder a la computadora y que
proporciona una interface con el usuario para que éste pueda ejecutar tareas.
El shell proporciona un mecanismo para el empleo de variables que puedan almacenar información
con un doble objetivo:
• Control de entorno.
• Programación shell.
Instrucciones relacionadas con variables
set: Asigna o borra el valor de una variable.
Sintaxis: set nombre_variable [=valor_variable]
El shell de UNIX no admite tipos numéricos. Entonces, el valor asignado a una variable se
considera siempre como una cadena de caracteres.
El efecto de omitir el valor que se asigna a la variable es el de borrarla.
Ejemplo: set mivariable=mi_primera_variable
Es importante observar que no hay espacios en blanco antes ni después del carácter
=, pues los blancos son caracteres especiales.
Para referirse al valor de una variable se utiliza su nombre precedido del carácter $.
Dependiendo del shell utilizado, puede ocurrir que para asignar valores a variables no se
utilice la orden set. En estos casos, la sintaxis utilizada para la asignación queda como se
indica:
Sintaxis: nombre_variable=valor_variable
echo: Visualiza el valor de una variable o muestra por pantalla el resultado de evaluar una
expresión.
Sintaxis: echo $nombre_variable
echo cadena_de_caracteres
Ejemplos:
echo $mivariable
Como resultado, se muestra por pantalla la cadena: mi_primera_variable.
echo "Me gusta jugar al Mus"
Como resultado, se muestra por pantalla la cadena: me gusta jugar al mus.
unset: Elimina variables (diferente de borrar su valor).
Sintaxis: unset nombre_variable
Evaluación de expresiones de tipo entero (expr).
Como se ha dicho, el shell de UNIX no admite tipos numéricos, solamente cadenas de caracteres.
De todas formas, existe la posibilidad de evaluar expresiones enteras utilizando la orden expr.
Sintaxis: expr entero operador entero <operador entero>
Observa que siempre hay un espacio en blanco como separador entre operador y entero. Además,
pueden utilizarse variables para los operandos.
Ejemplo:
set a=5
expr $a + 3 - 1
Como resultado se visualiza la cadena de caracteres "7" (5+3-1=7).
Si se quiere asignar el resultado a una variable es necesario utilizar la orden expr entre caracteres `
(tilde invertida):
set b=`expr $a + 2`
En la variable b queda almacenada la cadena de caracteres "7" (5+2=7).
Variables de entorno.
Linux utiliza ciertas variables durante su ejecución para conocer, entre otras cosas, las preferencias
del usuario y las características del sistema de computador utilizado. Algunas de ellas son las
siguientes:
Variable Función
HOME Directorio propiedad del usuario.
SHELL Nombre del shell se está utilizando.
USER Nombre de usuario.
TERM Tipo de terminal que se usa.
DISPLAY Pantalla para X-Windows.
PATH Rutas de los archivos que se pueden ejecutar sin más que utilizar su nombre. Los
directorios se separan entre sí con el carácter : (dos puntos).
prompt Prompt de la línea de órdenes.
Como es lógico, el usuario del sistema puede comprobar los valores de estas variables y también
modificarlos, aunque no suele ser recomendable.
Enunciado de la práctica.
1. Prueba las siguientes instrucciones:
• expr 5 + 6
• expr 5 * 6
• expr 5 - 10 / 5
¿Por qué se produce un error en la segunda instrucción? Corrígela para que funcione correctamente
2. Crea una variable de nombre mivar y asígnale el valor 5. Posteriormente ejecuta la instrucción:
set mivar2=$mivar+1
Comprueba el valor del resultado almacenado en mivar2.
3. Almacena en mivar2 el resultado de la operación mivar*5/3 y visualízalo.
4. Borra las variables mivar y mivar2.
Ejercicio Script:
Pasos:
1. Crea un archivo de texto de nombre scriptl y teclea en él, en líneas distintas, las órdenes
necesarias para:
• Mostrar todos los archivos del directorio /var/log/ que comiencen por vbox y guardar el
resultado en un archivo de nombre listado.
• Contar el número de líneas del fichero listado.
• Modificar los permisos de listado para que sean los siguientes:
rwx------
• Crear una variable de shell de nombre valor1 y asignarle el valor 10.
• Crear otra variable de nombre valor2 y asignarle el valor 30.
• Multiplicar ambas variables y dejar el resultado en otra variable de nombre resultado.
• Mostrar por pantalla un mensaje con el valor de la variable resultado:
El valor de resultado es 'valor'
(Es imprescindible que aparezcan comillas simples a ambos lados del valor de la
variable).
2. Inserta al principio del archivo script1 la siguiente línea:
#! /bin/csh
3. Si es necesario, modifica las propiedades del archivo scriptl para que su propietario pueda
ejecutarlo.
4. Ejecuta script1. Observa los resultados y comprueba cómo se ejecutan las órdenes del fichero de
texto de igual forma que si se hubieran tecleado de una en una en la línea de ordenes.