Operaciones Aritméticas en Shell

ShellBeginner
Practicar Ahora

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.

Esta es una Práctica Guiada, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que esta es una práctica de nivel principiante con una tasa de finalización del 96%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Crear un nuevo script de Bash

Comencemos creando un nuevo archivo para nuestro script de Bash.

  1. Abre la terminal en el WebIDE. Deberías ver un símbolo del sistema similar a este: labex@ubuntu:~/project$.

  2. Crearemos nuestro script en el directorio project. Por defecto ya te encuentras en esta ubicación, pero asegurémonos utilizando el comando cd:

    cd ~/project

    Este comando cambia el directorio actual a /home/labex/project.

  3. Ahora, vamos a crear un nuevo archivo llamado fruit_basket.sh. Utilizaremos el comando touch, que sirve para crear un archivo vacío:

    touch fruit_basket.sh
  4. Abre el archivo fruit_basket.sh en el editor del WebIDE. Puedes hacerlo haciendo clic en el nombre del archivo en el explorador de archivos situado en el lado izquierdo.

  5. 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/bash

    Esta 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=50 significa 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:

  • echo es 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 TOTAL es 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.

  1. En la terminal, otorga permisos de ejecución al script con el comando chmod:

    chmod +x ~/project/fruit_basket.sh

    Este comando cambia el modo del archivo, añadiendo el permiso de ejecución (x) para el usuario.

  2. Ahora, ejecutemos el script:

    ~/project/fruit_basket.sh

    Este 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:

  1. Los scripts de Bash comienzan con una línea shebang (#!/bin/bash).
  2. Las variables en Bash se asignan sin dejar espacios alrededor del signo =.
  3. Las operaciones aritméticas en Bash se realizan dentro de $(( )).
  4. El comando echo se utiliza para mostrar información en pantalla.
  5. Los scripts deben hacerse ejecutables mediante chmod +x antes 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.