Inicio wiki
Aula Virtual
 Administración de Sistemas Operativos
Inicio ASO Aula Virtual

Vistas
  •   Operaciones aritmético lógicas
De ASO

Como cualquier lenguaje de programación se pueden realizar operaciones aritmético y lógicas sobre las variables. Para realizar operaciones se utiliza el comando expr y para realizar comparaciones se utiliza el comando test. A continuación vamos a ver a fondo cada uno de los comandos.

Expre

El comando expr se utiliza principalmente para realizar operaciones aritméticas simples y, en menor medida para manipular cadenas. La sintaxis de expr es: expr arg1 op arg2 [op arg3...] En la tabla 1 podemos ver los diferentes operaciones de expr A continuación vamos a ver un ejemplo de uso de operadores aritméticos:

#!/bin/bash
echo -n "Introduce un valor: "
read var1
echo -n "Introduce un valor: "
read var2
resultado=$(expr $var1 \* $var2)
echo "El resultado de la multiplicación es "$resultado

Otra funcionalidad adicional de la función expr y que resulta muy interesante a la hora de programar es la generación de números aleatorios:

#/bin/bash
numero=$(expr $RANDOM % 100)
echo $numero
Tabla 1. Operadores de expr
Operador Comentario

Operadores aritméticos
+ Suma
- Resta
\* Multiplicación. El operador * va precedido de \ porque * ya tiene un significado en GNU/Linux
/ División
% Resto de la división
Operadores relacionales
= Igualdad
!= Diferentes
> Mayor
>= Mayor o igual
< Menor
<= Menor o igual
Operadors lógicos
| Or lógico
& And lógico

Test

El comando test permite evaluar tres tipos de elementos: archivos, cadenas y números. Su sintaxis es: test - opcion archivo test [expresión] En la tabla 2 podemos ver las diferentes opciones que nos permite utilizar el comando test según el tipo de datos.


Tabla 2. Opciones del comando test
Opción Descripción

Archivos o directorios
-f Devuelve verdadero (0) si el archivo existe y es un archivo regular (no es un directorio ni un archivo de dispositivo)
-s Devuelve verdadero (0) si el archivo existe y si su tamaño es mayor que 0.
-r Devuelve verdadero (0) si el archivo existe y tiene permisos de lectura.
-w Devuelve verdadero (0) si el archivo existe y tiene permisos de escritura.
-x Devuelve verdadero (0) si el archivo existe y tiene permisos de ejecución.
-d Devuelve verdadero (0) si existe y es un directorio.
Valores numéricos
-lt Menor que
-le Menor o igual que
-qt Mayor que
-qe Menor o igual que
-eq Igual a
-ne No igual a
Conectores
-o OR
-a AND
! NOT

A continuación podemos ver un ejemplo de cada tipo:

  • Evaluación de ficheros o directorios:
test -f /etc/passwd
  • Evaluación de cadenas
test [cadena1 = cadena2]
test [cadena1 != cadena2] 
  • Évaluación numérica. Las evaluaciones numéricas son sólo válidas para numeros enteros y su sintaxis es:
test numero operador numero 
Por ejemplo:
test 20 –lt 40