Fundamentos de Scripting Bash: Variables, Operadores y Ejemplos Prácticos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,3 KB

Fundamentos de Scripting Bash

Variables Especiales para Argumentos

En Bash, existen variables especiales que representan los argumentos pasados a un script:

  • $#: Muestra la cantidad de argumentos ingresados.
  • $@: Muestra todos los argumentos ingresados, tratados como elementos separados.

Operadores de Comparación en Bash

Para realizar comparaciones numéricas en Bash, se utilizan los siguientes operadores:

  • > : -gt (Greater Than) - Mayor que
  • < : -lt (Less Than) - Menor que
  • >=: -ge (Greater than or Equal) - Mayor o igual que
  • <=: -le (Less than or Equal) - Menor o igual que
  • ==: -eq (Equal) - Igual
  • !=: -ne (Not Equal) - Distinto

Scripts de Ejemplo

Script para Gestión de Usuarios

Este script básico permite listar o crear usuarios en un sistema Linux.

#!/bin/bash
# Script para gestión de usuarios

clear
echo -e "\tGESTIÓN DE USUARIOS\n"
echo -e "1- Listar usuarios"
echo -e "2- Crear usuario"
echo -e "3- Eliminar usuario"
echo -e "4- Modificar Usuario"
echo -e "5- Salir \n"
echo -e "Ingresar opción -> \c"
read opcion

if [ $opcion -eq 1 ]; then
  cat /etc/passwd | cut -d ":" -f 1
elif [ $opcion -eq 2 ]; then
  echo -e "Ingresar nombre de usuario a crear -> \c"
  read user
  grep $user /etc/passwd &> /dev/null
  if [ $? -ne 0 ]; then
    echo -e "Ingresar UID del usuario -> \c"
    read uid
    echo -e "Ingresar GID del usuario -> \c"
    read gid
    echo -e "Ingresar HOME del usuario -> \c"
    read home
    echo -e "Ingresar SHELL del usuario -> \c":
    read shell
    echo -e "Ingresar contraseña -> \c "
    read -s password1
    echo -e "\nIngresar contraseña nuevamente -> \c"
    read -s password2
    if [ "$password1" == "$password2" ]; then
      useradd -u $uid -g $gid -m -d $home -s $shell $user &> /dev/null
      echo "$password1" | passwd --stdin $user &> /dev/null
      echo -e "\nUsuario creado satisfactoriamente \n"
      exit
    else
      echo -e "Las contraseñas no coinciden, no se crea el usuario \n"
    fi
  else
    echo -e "El usuario ingresado ya existe \n"
  fi
fi

Script para Configuración de Repositorios (No Interactivo)

Este script crea un archivo de configuración de repositorio Yum/DNF utilizando argumentos pasados al script.

#!/bin/bash
# Repositorio con argumentos (NO INTERACTIVO)

clear
echo "[$2]" > /etc/yum.repos.d/$1
echo "name=$3" >> /etc/yum.repos.d/$1
echo "baseurl=$4" >> /etc/yum.repos.d/$1
echo "enabled=$5" >> /etc/yum.repos.d/$1
echo "gpgcheck=$6" >> /etc/yum.repos.d/$1
echo -e "Archivo de configuración de repositorio ha sido creado \n"

Script para Configuración de Repositorios (Interactivo)

Este script crea un archivo de configuración de repositorio Yum/DNF solicitando la información al usuario de forma interactiva.

#!/bin/bash
# REPOSITORIO INTERACTIVO

clear
echo -e "Ingresar nombre de archivo (.repo) -> \c"
read archivo

if [ -f /etc/yum.repos.d/$archivo ]; then
  echo -e "El archivo ingresado ya existe, bye"
else
  echo -e "Ingresar el nombre del repositorio -> \c"
  read nombre
  echo -e "Ingresar etiqueta (name) del repositorio -> \c"
  read name
  echo -e "Ingresar ubicación de archivos del repositorio -> \c"
  read ubicacion
  echo -e "Ingresar estado del repositorio (0=deshabilitado/1=habilitado) -> \c"
  read estado
  echo -e "Ingresar estado de llave del repo (0=sin llave/1=con llave) -> \c"
  read llave

  echo "[$nombre]" > /etc/yum.repos.d/$archivo
  echo "name=$name" >> /etc/yum.repos.d/$archivo
  echo "baseurl=$ubicacion" >> /etc/yum.repos.d/$archivo
  echo "enabled=$estado" >> /etc/yum.repos.d/$archivo
  echo "gpgcheck=$llave" >> /etc/yum.repos.d/$archivo

  echo -e "Archivo de configuración de repositorio ha sido creado \n"
fi

Entradas relacionadas: