esen

Curso Linux 11/60 | Bash Script Avanzado II

Dentro del curso de Linux se explico lo que es Bash Script y se dividió en 4 capítulos, siendo este el ultimo de esta sección donde tendrás la oportunidad de aplicar el conocimiento adquirido en las lecciones anteriores de Bash Script. veras las estructuras básicas de:

  1. El if.
  2. El for.
  3. El while.
  4. El case.
  5. La asignación de comandos a variables.
  6. Los arreglos.
  7. Y la aplicación de varios arreglos.

En este ejercicio crearas un Bash Script con las siguientes partes:

  1. Crearas una función de nombre userContainer que contenga un arreglo con los usuarios del sistema.
  2. Una segunda función de nombre putColors que te permita imprimir el contenido en un determinado color
  3. Un menú con el comando case que te permita mostrar lo siguiente:
    1.  Usuarios del sistema.
    2. Porcentaje del Disco Duro.
    3. Tamaño utilizado de tu /home.
    4. Cantidad de procesos que están corriendo en actualmente en el sistema.
    5. y una opción que te permita salir del Script.


¿Lo vez complicado? tranquilo que te lo explico en el vídeo todo paso a paso.

Anterior mente ya explicamos que todo Shell Script debe tener un encabezado ¿te acuerdas cual es el encabezado de todo Bash Script? exacto es: #!/bin/bash

Bueno entonces vamos a crear un documento con nano de nombre programa.sh y vamos a comenzar por elaborar el encabezado de nuestro archivo de Shell Script como siempre colocamos #!/bin/bash

Crea tu primer Script

A fin de que comprendas mejor el material te animamos a que escribas el Bash Script desde cero, recuerda que hay que respetar la tabulación y las mayúsculas y minúsculas a fin de que tu Script funcione correctamente.

#
# declara la función userContainer
#
function userContainer()
     {vari=$ |cat /etc/passwd | awk -F ":" '{print $1}';
     counter=0
     for t in $vari;
     do
         users[$counter]=$t
         counter=$(expr $counter + 1);
     done
     putColor red ${users[$1]}
     }
#
# declara la función putColors
#
function putColors() {
if [ $1 = “red” ];
then
         red='\33[0;31m'
         noc='\33[0m'
         echo –e ${red} $2 ${noc}
fi
if [ $1 = “blue” ];
then
         blue='\33[0;34m'
         noc='\33[0m'
         echo –e ${blue} $2 ${noc}
fi
if [ $1 = “yellow” ];
then
         yellow='\33[0;33m'
         noc='\33[0m'
         echo –e ${yellow} $2 ${noc}
fi
if [ $1 = “green” ];
then
         green='\33[0;32m'
         noc='\33[0m'
         echo –e ${green} $2 ${noc}
fi
if [ $1 = “cyan” ];
then
         cyan='\33[0;36m'
         noc='\33[0m'
         echo –e ${cyan} $2 ${noc}
fi
if [ $1 = “magenta” ];
then
         magenta='\33[0;35m'
         noc='\33[0m'
         echo –e ${magenta} $2 ${noc}
fi
}
readVar=0
clear
#
# dentro del ciclo while anida el menú a mostrar en pantalla.
#
while [ $readVar –le 4 ];
do
         echo "Introduzca un numero"
         putColors red "1. Línea del usuario"
         putColors green "2. Porcentaje de disco"
         putColors magenta "3. Tamaño de tu home"
         putColors yellow "4. Cantidad de procesos"
         putColors cyan "5. Salir"
         echo –n "Introduzca un valor: "
         readVar"
         clear"
#
# Mediante case le indicas al Script que hacer en cada caso.
#
         case $readVar in
             1)
                 clear
                 putColors cyan "Introduzca la posición del arreglo"
                 read linea
                 clear
                 echo –n "El usuario en esa posición es: "
                 userContainer $linea
                 putColors cyan "Presiones una tecla para continuar ..."
                 read
                 clear
             ;;
             2)
                 clear
                 porcen=$(df –Ph | grep sda1 | awk –F " " '{print $5}');
                 putColors green $porcen
                 putColors cyan "Presiones una tecla para continuar ..."
                 read
                 clear
             ;;
             3)
                 clear
                 espacio=$(du –sh $HOME);
                 putColors yellow $espacio
                 putColors cyan "Presiones una tecla para continuar ..."
                 read
                 clear
             ;;
             4)
                 clear
                 procesos=$(pa xau | grep #USER | wc -l);
                 putColors magenta $procesos
                 putColors cyan “Presiones una tecla para continuar ...”
                 read
                 clear
             ;;
             *)
                 exit
             ;;
             esac

Una vez tengas listo tu script lo guardas y lo ejecutas, no sin antes colocarle los permisos de ejecución:

chmod +x programa.sh

Ahora con ./ lo ejecutas:
./programa.sh

Si todo ha salido bien veras un menú como el siguiente:

codigo bash script

Repaso de la sección Bash Script

Para recapitular, en la sección de Shell Script vimos:

  • Shell Script básico 1: vimos lo variables, entorno de variables y estructuras básicas.
  • Shell Script básico 2: vimos condiciones, manejo de variables entre otros.
  • Shell Script avanzado 1: vimos operadores, funciones, arreglos y como asignar comandos a variables ósea como asignar el resultados de los comando a una variable.
  • Shell Script avanzado 2: vimos la aplicación del 90% de lo que aprendimos en las clases pasadas con ejecución de comandos, con utilización de arreglos y la utilización de las estructures case que ya habíamos visto.

Sobre Fernando Alberto Velasquez Aguilera

Comentar

Su dirección de correo electrónico no será publicada.Los campos necesarios están marcados *

*