Advertisement
Sergio_Istea

practica if - gestor de paquetes

Sep 27th, 2021
85
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3.  
  4. # Averiguar si soy root
  5.  
  6. if [ $UID -ne 0 ]; then
  7.     echo "Ejecute este programa como 'root'."
  8.     exit 1 # cerramos el programa con 'exit status 1'
  9. fi
  10.  
  11. ERR="Gestor de paquetes para 'apt'. Ejecute:\n
  12. \t$0 accion paquete(s)\n
  13.  
  14. Acciones:\n
  15. \tadd\tInstala paquetes\n
  16. \tdel\tDesisnstala paquetes. Sin argumetos 'autoremove'\n
  17. \tupgrade\tActualiza el sistema\n"
  18.  
  19. # test '-z' devuelve true si una cadena de caracteres es '0'
  20. # la comparacion es en si misma un 'test' dentro de los corchetes
  21. # no hace falta especificarlo
  22. # '-z' evalua la longitud de una cadena de caracteres
  23. # Si la longitud es '0' devuelve true, por lo tanto se entiende que no
  24. # se recibio niung argumento y muestra el error y sale del programa.
  25.  
  26. if [ -z "$*" ]; then
  27.     echo -e $ERR
  28.     exit 1
  29. fi
  30.  
  31.  
  32. # Procesar argumentos
  33. # 'add'
  34. # Se hace una doble comparacion
  35. # para que sea 'true' la variable '$1' tiene que ser igual a 'add'
  36. # y '$#' tiene ser igual a 2
  37.  
  38. if [[ $1 == add && $# -ge 2 ]]; then
  39.  
  40.     PKG="$(echo $* | cut -d ' ' -f 2,3,4,5,6,7,8,9)"
  41.    
  42.     apt update 1> /dev/null && apt install $PKG
  43.     exit # sin un codigo de error la variable '$?' matiene el codigo generado por el
  44.          # último programa ejecutado
  45.  
  46. elif [[ $1 == del ]]; then
  47.  
  48.     if [[ $# -ge 2 ]]; then
  49.         PKG="$(echo $* | cut -d ' ' -f 2,3,4,5,6,7,8,9)"
  50.         apt remove $PKG
  51.         exit
  52.     else
  53.         apt autoremove # si los argumentos son menores a '2'
  54.                    # solo queda el argumento 'del'
  55.         exit
  56.     fi
  57. elif [[ $1 == upgrade ]]; then
  58.     apt update 1> /dev/null && apt upgrade
  59.     exit
  60. else
  61.     echo -e $ERR
  62.     exit 1
  63. fi
  64.  
Advertisement
RAW Paste Data Copied
Advertisement