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