Advertisement
sergio_educacionit

if-then-else-v3.sh

Sep 28th, 2022
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.08 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3.  
  4. # buscar un usuario y determinar su 'UID' si esta es menor que '1000' debe cambiarse a una ID que se mayor o igual que 1000.
  5. # Guardo la linea que haga match con el usuario
  6.  
  7. if [ $UID -ne 0 ]; then
  8.     echo "Ejecute este script como usuario 'root'."
  9.     exit 1
  10. fi
  11.  
  12. user="$1"
  13.  
  14. if ! grep ^$user /etc/passwd;then
  15.  
  16.     echo "No se encontro el usuario '$user'. Se sale."
  17.     exit 1
  18.  
  19. fi
  20.  
  21. uid=$(cat /etc/passwd | grep ^$user | cut -d ":" -f 3)
  22.  
  23.  
  24. if [ $uid -lt 1000 ]; then
  25.  
  26.     echo "El usuario '$user' tiene la 'id' $uid"
  27.  
  28.     read -p "Ingrese un valor mayor o igual que 1000: " nuid
  29.  
  30.     # El uso de 'if' anidados no es recomendable pero
  31.     # muchas veces es util.
  32.  
  33.     # Creamos una variable que contenga una cadena
  34.     # de numeros, no se entiende como enteros, sino
  35.     # como los caracteres que compoenen esa cadena
  36.     # utilizando expresiones regulares.
  37.  
  38.     cadena='^[0-9]+$'
  39.        
  40.     if [[ $nuid =~ $cadena ]];then
  41.  
  42.         usermod -u $nuid $user
  43.     else
  44.         echo "Numero que ingreso no es válido"
  45.         exit 1
  46.     fi
  47.  
  48.  
  49. else
  50.     echo "El usuario '$user' tiene una ID correcta: $uid"
  51.     exit 0
  52.  
  53. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement