Operaciones Aritméticas en Shell

ShellShellBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo realizar operaciones aritméticas básicas en la programación de Shell. Crearás un script sencillo para calcular el costo total de una canasta de frutas, demostrando el uso de variables y expresiones aritméticas en Bash. Este laboratorio está diseñado para principiantes, por lo que explicaremos cada paso en detalle.

Crear un nuevo script de Bash

Comencemos creando un nuevo archivo de script de Bash.

  1. Abre tu terminal en el WebIDE. Deberías ver un indicador de comando, que podría verse así: labex@ubuntu:~/project$.

  2. Crearemos nuestro script en el directorio project. Por defecto, ya estás en este directorio, pero asegúrate usando el comando cd:

    cd ~/project

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

  3. Ahora, creemos un nuevo archivo llamado fruit_basket.sh. Usaremos el comando touch, que crea un archivo vacío:

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

  5. Todo script de Bash debe comenzar con una línea "shebang". Esta línea le dice al sistema qué intérprete usar para ejecutar el script. Agrega 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 diferentes frutas y la canasta.

Agrega 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 esto:

  • En Bash, no es necesario declarar 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, a menudo usamos 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 un piña cuesta 50 centavos.
  • No es necesario especificar un tipo de dato. Bash trata estos como cadenas (strings) por defecto, pero los manejará como números cuando realicemos operaciones aritméticas.

Calcular el costo total

Ahora que hemos definido los costos, calculemos el costo total de una canasta de frutas que contenga 1 piña, 2 bananas y 3 sandías.

Agrega 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 operaciones aritméticas. Cualquier cosa dentro de estos paréntesis dobles se trata como una expresión aritmética.
  • Dentro de la expresión aritmética, no es necesario usar $ 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 bananas
    • (COST_WATERMELON * 3): El costo de 3 sandías
    • COST_BASKET: El costo de la canasta en sí
  • Todos estos valores se suman y el resultado se almacena en la variable TOTAL.

Nota: Bash solo maneja aritmética de enteros. Si estuviéramos trabajando con dólares y centavos, necesitaríamos usar una herramienta como bc para la aritmética de punto flotante.

Mostrar el costo total

Para ver el resultado de nuestro cálculo, necesitamos imprimir el costo total. Agrega 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"

Analicemos esta nueva línea:

  • echo es un comando que imprime texto en la terminal.
  • El texto entre comillas se imprimirá tal cual, excepto la parte de $TOTAL.
  • Cuando un nombre de variable está precedido por $ dentro de una cadena, Bash lo reemplaza con el valor de la variable. Esto se llama expansión de variables.
  • Entonces, si TOTAL es 128, la salida será "Total Cost is 128 cents".

Hacer el script ejecutable y ejecutarlo

Ahora que nuestro script está completo, necesitamos hacerlo ejecutable y luego ejecutarlo.

  1. En la terminal, haz el script ejecutable con el comando chmod:

    chmod +x ~/project/fruit_basket.sh

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

  2. Ahora, ejecutemos el script:

    ~/project/fruit_basket.sh

    Este comando le dice a Bash que ejecute nuestro script. La parte ~/project/ especifica la ruta a nuestro script.

Deberías ver una salida similar a:

Total Cost is 128 cents

Esta salida muestra que el costo total de nuestra canasta de frutas (1 piña, 2 bananas, 3 sandías y la canasta en sí) es de 128 centavos.

Resumen

En este laboratorio, aprendiste cómo realizar operaciones aritméticas utilizando operadores básicos en la programación de Shell. Creaste un script de Bash que calcula el costo total de una canasta de frutas definiendo variables para los costos individuales y utilizando expresiones aritméticas para calcular el total. También aprendiste cómo hacer un script ejecutable y ejecutarlo desde la línea de comandos.

Puntos clave a recordar:

  1. Los scripts de Bash comienzan con una línea shebang (#!/bin/bash).
  2. Las variables en Bash se asignan sin espacios alrededor del signo =.
  3. Las operaciones aritméticas en Bash se realizan dentro de $(( )).
  4. El comando echo se utiliza para imprimir salida.
  5. Los scripts deben hacerse ejecutables con chmod +x antes de poder ejecutarse.

Estas habilidades forman la base para tareas de scripting de shell más complejas y se pueden aplicar a diversos escenarios en los que necesites realizar cálculos dentro de tus scripts.