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