Introducción
En esta práctica de laboratorio, aprenderás a realizar operaciones aritméticas básicas en la programación de Shell. Crearás un script sencillo para calcular el costo total de una cesta de frutas, lo que te permitirá poner en práctica el uso de variables y expresiones aritméticas en Bash. Esta sesión está diseñada para principiantes, por lo que explicaremos cada paso detalladamente.
Crear un nuevo script de Bash
Comencemos creando un nuevo archivo para nuestro script de Bash.
Abre la terminal en el WebIDE. Deberías ver un símbolo del sistema similar a este:
labex@ubuntu:~/project$.Crearemos nuestro script en el directorio
project. Por defecto ya te encuentras en esta ubicación, pero asegurémonos utilizando el comandocd:cd ~/projectEste comando cambia el directorio actual a
/home/labex/project.Ahora, vamos a crear un nuevo archivo llamado
fruit_basket.sh. Utilizaremos el comandotouch, que sirve para crear un archivo vacío:touch fruit_basket.shAbre el archivo
fruit_basket.shen el editor del WebIDE. Puedes hacerlo haciendo clic en el nombre del archivo en el explorador de archivos situado en el lado izquierdo.Todo script de Bash debe comenzar con una línea "shebang". Esta línea le indica al sistema qué intérprete debe usar para ejecutar el script. Añade la siguiente línea al principio del archivo:
#!/bin/bashEsta línea especifica que el script debe ejecutarse con el intérprete de Bash.
Definir variables para los costos de las frutas
Ahora que tenemos nuestro archivo de script, definamos algunas variables para almacenar los costos de las diferentes frutas y de la cesta.
Añade las siguientes líneas a tu archivo fruit_basket.sh:
#!/bin/bash
## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
Analicemos lo que acabamos de escribir:
- En Bash, no es necesario declarar el tipo de las variables antes de usarlas. Simplemente asignamos un valor a un nombre de variable.
- Los nombres de las variables distinguen entre mayúsculas y minúsculas. Por convención, solemos usar mayúsculas para las constantes (valores que no cambiarán).
- No debe haber espacios alrededor del signo
=al asignar valores. - Estos valores representan el costo en centavos. Por ejemplo,
COST_PINEAPPLE=50significa que una piña cuesta 50 centavos. - No necesitamos especificar un tipo de dato. Bash los trata como cadenas de texto por defecto, pero los manejará como números cuando realicemos operaciones aritméticas.
Calcular el costo total
Con los costos definidos, vamos a calcular el precio total de una cesta que contiene 1 piña, 2 plátanos y 3 sandías.
Añade la siguiente línea a tu archivo fruit_basket.sh:
#!/bin/bash
## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
## Calculate total cost
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))
Examinemos esta nueva línea:
$(( ))es la sintaxis de Bash para realizar operaciones aritméticas. Todo lo que esté dentro de estos paréntesis dobles se trata como una expresión matemática.- Dentro de la expresión aritmética, no es obligatorio usar el símbolo
$antes de los nombres de las variables. - Estamos realizando varias operaciones:
COST_PINEAPPLE: El costo de 1 piña.(COST_BANANA * 2): El costo de 2 plátanos.(COST_WATERMELON * 3): El costo de 3 sandías.COST_BASKET: El costo de la propia cesta.
- Todos estos valores se suman y el resultado se almacena en la variable
TOTAL.
Nota: Bash solo maneja aritmética de números enteros. Si necesitáramos trabajar con decimales (como dólares y centavos con punto decimal), tendríamos que usar herramientas adicionales como bc.
Mostrar el costo total
Para ver el resultado de nuestro cálculo, necesitamos imprimir el costo total. Añade la siguiente línea a tu archivo fruit_basket.sh:
#!/bin/bash
## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1
## Calculate total cost
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))
## Display the total cost
echo "Total Cost is $TOTAL cents"
Desglosemos esta nueva instrucción:
echoes un comando que imprime texto en la terminal.- El texto entre comillas se imprimirá tal cual, a excepción de la parte
$TOTAL. - Cuando el nombre de una variable va precedido por
$dentro de una cadena, Bash lo reemplaza por el valor de dicha variable. Esto se conoce como expansión de variables. - Por lo tanto, si
TOTALes 128, la salida será "Total Cost is 128 cents".
Hacer el script ejecutable y ejecutarlo
Ahora que nuestro script está completo, debemos darle permisos de ejecución y luego ponerlo en marcha.
En la terminal, otorga permisos de ejecución al script con el comando
chmod:chmod +x ~/project/fruit_basket.shEste comando cambia el modo del archivo, añadiendo el permiso de ejecución (
x) para el usuario.Ahora, ejecutemos el script:
~/project/fruit_basket.shEste comando le indica a Bash que ejecute nuestro script. La parte
~/project/especifica la ruta donde se encuentra el archivo.
Deberías ver una salida similar a esta:
Total Cost is 128 cents
Este resultado confirma que el costo total de nuestra cesta de frutas (1 piña, 2 plátanos, 3 sandías y la cesta) es de 128 centavos.
Resumen
En esta práctica de laboratorio, has aprendido a realizar operaciones aritméticas utilizando los operadores básicos en la programación de Shell. Has creado un script de Bash que calcula el costo total de una cesta de frutas definiendo variables para los costos individuales y utilizando expresiones aritméticas para obtener el total. También has aprendido a convertir un script en un archivo ejecutable y a iniciarlo desde la línea de comandos.
Puntos clave para recordar:
- Los scripts de Bash comienzan con una línea shebang (
#!/bin/bash). - Las variables en Bash se asignan sin dejar espacios alrededor del signo
=. - Las operaciones aritméticas en Bash se realizan dentro de
$(( )). - El comando
echose utiliza para mostrar información en pantalla. - Los scripts deben hacerse ejecutables mediante
chmod +xantes de poder ejecutarse directamente.
Estas habilidades constituyen la base para tareas de scripting más complejas y pueden aplicarse a diversos escenarios donde necesites realizar cálculos dentro de tus automatizaciones.



