Scripts en Bash: ejercicios resueltos de temperaturas y grupos de usuarios

Informática y Telecomunicaciones2,32 KB

Ejercicios de Bash: temperaturas y grupos de usuarios

Ejercicio 1: Temperaturas

Este script solicita el número de días y, a continuación, las temperaturas correspondientes. Calcula la temperatura media, la temperatura máxima, la temperatura mínima y el número de días con temperatura negativa.

#!/bin/bash
count=0
countBC=0
echo "Número de días"
read dias
tempTotal=0
tempMax=0
tempMin=1000
tempMedia=0
if [ $dias -ge 1 ]
then
   echo "Introduce temperaturas en orden"
   while [ $dias -gt $count ]
   do
      read temp
      array[$count]=$temp
      tempTotal=$(expr $tempTotal + $temp)
      if [ $temp -gt $tempMax ]
      then
         tempMax=$temp
      fi
      if [ $temp -lt $tempMin ]
      then
         tempMin=$temp
      fi
      if [ $temp -lt 0 ]
      then
         arrayBC[$countBC]=$temp
         countBC=$(expr $countBC + 1)
      fi
      count=$(expr $count + 1)
   done
   tempMedia=$(expr $tempTotal / $dias)
   echo "Temp media: $tempMedia"
   echo "Temp máxima: $tempMax"
   echo "Temp mínima: $tempMin"
   echo "Días con temperatura negativa: ${#arrayBC[@]}"
else
   echo "Los días deben ser positivos"
fi

Ejercicio 2: Grupos de usuarios

Este script comprueba si el usuario indicado como parámetro existe, muestra su UID, su nombre, su GID, su grupo y, si pertenece a más de dos grupos, los muestra todos.

#!/bin/bash
if [ $# -lt 1 ]
then
   echo "Parámetros incorrectos"
fi
id $1 > /dev/null
if [ $? -ne 0 ]
then
   echo "El usuario no existe"
else
   NOMBRE=$(id $1 | cut -f1 -d" ")
   echo "(UID) y nombre: $NOMBRE"
   GRUPO1=$(id $1 | cut -f2 -d" ")
   echo "(GID) y grupo: $GRUPO1"
   if [ $(id $1 | tr " " "\n" | wc -l) -gt 2 ]
   then
      GRUPO2=$(id $1 | cut -f3 -d" ")
      echo "(GID) y grupos secundarios: $GRUPO2"
   fi
fi

Puntos clave

  • Uso de condicionales if y else en Bash.
  • Bucles while para el procesamiento de datos.
  • Manejo de arrays y cálculo aritmético con expr.
  • Obtención de información de usuarios con id y procesamiento de texto con cut, tr y wc.

Descargar

PDF Word HTML