Ejemplos de scripts en Bash: tablas, menús y manipulación de cadenas

Clasificado en Informática

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

1. Generar tabla de multiplicar

Script para generar la tabla de multiplicar de un número dado:

read -p "Ingrese un número: " numero
for i in 0 1 2 3 4 5 6 7 8 9 10; do
  echo "$numero x $i = $((numero * i))"
done

2. Procesar datos de un archivo

Script para procesar datos de un archivo y filtrar por localidad:

while IFS=';' read -r nombre apellido edad dni tel localidad asignaturas; do
  nombreinver=$(echo "$nombre" | rev)
  if [ "$localidad" == "Vélez" ]; then
    echo "$nombre;${apellido^^};$edad;$dni;$tel;$localidad;$asignaturas" >> c.txt
  fi
done < b.txt

3. Bucle con menú interactivo

Ejemplo de bucle while con un menú interactivo:

while true; do
  read -p "Seleccione una opción: " opcion
  case $opcion in
    1) echo "Opción 1 seleccionada" ;;
    2) echo "Opción 2 seleccionada" ;;
    3) echo "Opción 3 seleccionada" ;;
    4) break ;;
    *) echo "Opción inválida" ;;
  esac
done

4. Manipulación de cadenas

Ejemplos de manipulación de cadenas en Bash:

  • ${cadena,}: Convertir la primera letra a minúscula.
  • ${cadena,,}: Convertir toda la cadena a minúsculas.
  • ${cadena^^}: Convertir toda la cadena a mayúsculas.
  • ${cadena:1}: Obtener la subcadena a partir de la posición 1.

5. Manipulación de subcadenas

Ejemplos de manipulación de subcadenas:

  • ${cadena:2:3}: Obtener 3 caracteres a partir de la posición 2.
  • ${cadena:(-3)}: Obtener los últimos 3 caracteres.
  • ${cadena/e}: Eliminar la primera "e".
  • ${cadena//e/a}: Reemplazar todas las "e" por "a".

6. Script con menú de opciones

#!/bin/bash
# Autor: Jonathan

opcion=1
while [ $opcion -ne 5 ]; do
  echo ""
  echo "Bienvenido al menú"
  echo ""
  echo "1) Contar los ficheros con permisos de ejecución y lectura dada una ruta de Linux"
  echo "2) Mostrar por pantalla los ficheros ejecutables dada una ruta de Linux"
  echo "3) Si es fichero y la longitud del nombre es mayor a 5, copiar a otra ruta el fichero dada una ruta de Linux"
  echo "4) Contar los directorios vacíos dada una ruta de Linux"
  echo "5) Salir"
  echo ""
  read -p "Introduzca una opción: " opcion
  echo ""

  case $opcion in
    1) read -p "Ingrese una ruta: " ruta
       find "$ruta" -type f -perm /u+rx | wc -l ;;
    2) read -p "Ingrese una ruta: " ruta
       ls -l "$ruta" | grep "^-.x." ;;
    3) read -p "Ingrese una ruta: " ruta
       read -p "Ingrese una ruta de destino: " ruta_destino
       find "$ruta" -type f -name '?????*' -exec cp {} "$ruta_destino" ; ;;
    4) read -p "Ingrese una ruta: " ruta
       find "$ruta" -type d -empty ;;
    5) exit ;;
    *) echo "Error" ;;
  esac
done

7. Crear usuarios a partir de un archivo

while IFS=';' read -r nombre apellido edad dni tel localidad asignaturas; do
  if [[ $tel == 9* ]]; then
    useradd "$nombre$apellido"
    echo "Usuario $nombre$apellido creado."
  fi
done < B.txt

8. Procesar datos de un archivo (versión 2)

while IFS=';' read -r nombre apellido edad dni tel localidad asignaturas; do
  nombreinver=$(echo "$nombre" | rev)
  if [ "$localidad" == "Vélez" ]; then
    echo "$nombre;${apellido^^};$edad;$dni;$tel;$localidad;$asignaturas" >> c.txt
  fi
done < b.txt

Entradas relacionadas: