Logo

3- Creamos un Script para Automatizar Actualizaciones del Sistema

Análisis paso a paso en español


Primer Script

#!/bin/bash

read -p "Escribe actualizar para actualizar el sistema, y escribe salir para salir del script: " desicion

if [ "$desicion " -eq "actualizar " ]; then
   apt update
   apt upgrade -y
   apt autoremove -y
   apt autoclean -y
   echo "El sistema entero ha sido actualizado"

elif [ "$desicion" -eq "salir" ]; then
   exit
fi

Problemas:

  1. Comparación de cadenas con -eq: Este operador solo se utiliza para comparar números. Para cadenas, se debe usar = o ==.
  2. Espacios en variables: $desicion introduce un espacio adicional, lo que puede romper la condición.
  3. Sin manejo de entradas no válidas: No informa si el usuario escribe algo incorrecto.

Resultado:

El script falla al intentar comparar cadenas.


Segundo Script

#!/bin/bash

read -p "Escribe actualizar para actualizar el sistema, y escribe salir para salir del script: " desicion

if [ "$desicion " = "actualizar " ]; then
   apt update    
   apt upgrade -y   
   apt autoremove -y
   apt autoclean -y  
   echo "El sistema entero ha sido actualizado"

elif [ "$desicion" =  "salir" ]; then
   exit
fi

Soluciones:

  1. Comparación de cadenas con =: Corrige el operador de comparación para cadenas.
  2. Espacios adicionales: $desicion aún tiene un espacio que puede causar problemas.

Resultado:

Funciona parcialmente, pero puede fallar debido a entradas del usuario con espacios no deseados.


Tercer Script

#!/bin/bash

read -p "Escribe el nombre del programa que quieras instalar: " desicion

apt install $desicion

Características:

  1. Diseño simplificado: Instala el paquete indicado por el usuario.
  2. Sin manejo de errores: No valida si el paquete existe o no.

Resultado:

Funciona, pero puede fallar sin notificar al usuario si el paquete no está disponible.


Cuarto Fragmento

apt-cache show audacity
echo $?
  • Comando apt-cache show audacity:

    • Intenta mostrar información sobre el paquete audacity desde los repositorios configurados.
    • Si el paquete existe, se imprimen detalles como su descripción, versión, dependencias, etc.
    • Si el paquete no está en los repositorios configurados, no devuelve nada y genera un código de salida diferente de 0.
  • Comando echo $?:

    • Muestra el código de retorno del último comando ejecutado (apt-cache show audacity en este caso).
    • Códigos de retorno comunes:
      • 0: El comando fue exitoso (el paquete existe).
      • Diferente de 0: Hubo un error (el paquete no está en los repositorios).

Quinto Script

#!/bin/bash

read -p "Escribe el nombre del programa que quieras instalar: " programa

apt-cache show  $programa

posible_error=$(echo $?)

echo $posible_error

Características:

  1. Captura del código de retorno: apt-cache show verifica si el paquete existe y $? guarda el código de retorno.
  2. Sin lógica condicional: Solo muestra el código de retorno.

Resultado:

Funciona, pero no informa al usuario si el paquete es inválido.


Sexto Script

#!/bin/bash

read -p "Escribe el nombre del programa que quieras instalar: " programa

apt-cache show  $programa >/dev/null

posible_error=$(echo $?)

echo $posible_error

Mejora:

  1. Redirección de salida: Suprime la salida de apt-cache con >/dev/null.
  2. Aún sin validación: Solo muestra el código de retorno.

Séptimo Script

#!/bin/bash

read -p "Escribe el nombre del programa que quieras instalar: " programa

apt-cache show  $programa >/dev/null

posible_error=$(echo $?)

echo $posible_error

if [ "$posible_error" -eq "0" ]; then

    apt install $programa
    else
    echo "No se encontró el paquete en los repositorios"
fi

Características:

  1. Validación añadida: Comprueba el código de retorno y notifica al usuario si el paquete no está disponible.
  2. Manejo de errores: Informa si el paquete no puede instalarse.

Resultado:

Funciona correctamente y es amigable para el usuario.


Último Script

#!/bin/bash

programa=$1

apt-cache show  $programa >/dev/null

posible_error=$(echo $?)

echo $posible_error

if [ "$posible_error" -eq "0" ]; then

    apt install $programa
    else
    echo "No se encontró el paquete en los repositorios"
fi

Características:

  1. Argumento desde la línea de comandos: Acepta la entrada directamente como parámetro del script.
  2. Misma validación: La lógica para verificar la disponibilidad del paquete permanece igual.

Resultado:

Ideal para automatización o integración en scripts.


Lecciones clave:

  1. Comparación de cadenas: Usa = o == para cadenas y -eq para números.
  2. Validación de entrada: Siempre verifica y maneja errores para guiar al usuario.
  3. Listo para automatización: Los argumentos desde la línea de comandos mejoran la flexibilidad.

© 2025 All rights reservedBuilt with Flowershow Cloud

Built with LogoFlowershow Cloud