Esta es la parte 6 de los tutoriales tipo cursos para aprender como funciona el lenguaje de programacion bash y porque no,para aprender a crear scripts o programas que nos ayuden a usar o administrar el sistema
Bueno en estas son las partes anteriores:
Parte 1
Parte 2
Parte 3
Parte 4
Parte 5
En esta ocacion veremos case y esac que seria case y su palabra alrevez esac,como ocurre con if en bash se cierra con fi,que es if volteado,bueno case y esac nos permiten tomar deciciones mezclando esto con read,read es una toma de decisiones,es interactuar desde el teclado con la terminal,esto ya lo hemos visto en python y mono C# en este sitio,y bueno vamos a empezar con los ejemplos:
El programa hola mundo,es el que se encarga de imprimir texto en la terminal o ventana en dado caso de un lenguaje,el programa hola mundo fue el primero que vimos en estos tutoriales pero lo traigo de nuevo,vitaminado con condicionales if,fi y el comando read
Código:
#!/bin/bash
echo " Escribe hola mundo"
tex="Hola Mundo"
read opcion
if [[ $opcion = $tex ]]
then
echo -e "\e[1;34m$opcion\e[0m"
else
echo "No escribiste bien"
exit 0;
Lo explico
Ahora ¿el comando case para que sirve?
codigo:
#!/bin/bash
echo "Presiona t para mostrar texto"
echo "Presiona l para listar tu contenido"
read opcion
echo "Presiona l para listar tu contenido"
read opcion
case $opcion in
t)
echo "Hola Mundo"
;;
l)
ls
;;
*)
echo "Opcion incorrecta saliendo..."
;;
esac
Bien,explico el código con #
#!/bin/bash
echo "Presiona t para mostrar texto" # Mostramos la opciones
echo "Presiona l para listar tu contenido" # Mostramos las opciones
read opcion # Leemos las opciones
echo "Presiona l para listar tu contenido" # Mostramos las opciones
read opcion # Leemos las opciones
case $opcion in # Tomamos las opciones
t) # Si elegimos t...
echo "Hola Mundo" #Muestra esto
;; # Símbolo de cierre de elección
l) # Si elegimos l...
ls # Ejecuta esto,comando del sistema que lista el contenido
;; # Simbolo de cierre de elección
*) # Si no elegimos ninguna de las anteriores...
echo "Opcion incorrecta saliendo..." # Se muestra esto y sale
;; # Simbolo de cierre de elección
esac # Cierre de case
codigo:
#!/bin/bash
echo "Presiona t para mostrar texto"
echo "Presiona l para listar tu contenido"
read opcion
echo "Presiona l para listar tu contenido"
read opcion
case $opcion in
t|texto|TEXTO) # Varias palabras o letras
echo "Hola Mundo"
;;
l|listar|LISTAR)
ls
;;
*)
echo "Opcion incorrecta saliendo..."
;;
esac
Aquí lo único que se tiene que explicar es que se pueden usar varias palabras o letras que si son elegidas con read,ejecutara solo un comando.
Ahora como hacer para que no se cierre hasta que escribamos Hola Mundo? bueno para eso haremos uso de un bucle while
#!/bin/bash
while [ 1 ]; do
read opcion
case $opcion in
t|T)
echo "Hola Mundo"
;;
s|S)
exit 0;
;;
help)
echo "Presiona s para salir"
echo "Presiona t para mostrar texto"
;;
echo "Presiona t para mostrar texto"
;;
*)
echo "Opcion incorrecta"
echo "Presiona help para obtener ayuda"
echo "Presiona help para obtener ayuda"
;;
esac
done
done
Vieron,se pueden hacer cosas muy buenas con bash,ahora explico el codigo con #
#!/bin/bash
while [ 1 ]; do # Iniciamos bucle con una condición logica,repetira y repetira los comandos hasta encontrarse con algún exit que lo cierre o algún argumento que rompa el bucle
read opcion
case $opcion in
t|T)
echo "Hola Mundo"
;;
s|S) # Este comando cierra el bucle y sale del programa
exit 0; # Argumento
;;
help) # Añadido help para mostrar los textos
echo "Presiona s para salir"
echo "Presiona t para mostrar texto"
;;
echo "Presiona t para mostrar texto"
;;
*) # Si se presiona cualquier otra tecla que no este asignada,mostrara esto y podremos ver la guia del pequeño programa
echo "Opcion incorrecta"
echo "Presiona help para obtener ayuda"
echo "Presiona help para obtener ayuda"
;;
esac
done
done
Enlace
Les recomiendo que identen, aunque bash no sea como python y de un error,les recomiendo que identen con tab los scripts que creen,los dos codigos de abajo no estan identados.
Bueno en el código use n=1,que quiere decir que le doy el valor de 1 a la variable n,luego cuando entra en el bucle y ve si la variable n es igual a 1,si lo ejecuta,luego cuando encuentra en un comando que n es 2 u otro valor se cierra,es parecido a exit solo que en ocaciones puede ser mas eficas si el codigo es largo ya que tambien se pudo haber escrito de esta manera
#!/bin/bash
n=1
while [ $n = 1 ]
do
clear
echo "Texto o Salir (t/s)"
read opcion
case "$opcion" in
t|T)
clear
echo "Hola Mundo"
sleep 3
n=2 # Argumento que rompe el bucle
;;
s|S)
n=2
;;
help)
clear
echo "Presiona s para salir"
echo "Presiona t para mostrar texto"
sleep 3
;;
*)
clear
echo "Opcion incorrecta"
echo "Presiona help para obtener ayuda"
sleep 3
;;
esac
done
Otra forma de escribirlo:
#!/bin/bash
while [ 1 ]; do
clear
echo "Texto o Salir (t/s)"
read opcion
case "$opcion" in
t|T)
clear
echo "Hola Mundo"
sleep 3
exit 1;
;;
s|S)
exit 2;
;;
help)
clear
echo "Presiona s para salir"
echo "Presiona t para mostrar texto"
sleep 3
;;
*)
clear
echo "Opcion incorrecta"
echo "Presiona help para obtener ayuda"
sleep 3
;;
esac
done
Les dejo un video de demostración del codigo anterior,ya identado y ejecutado
Bueno eso es todo,lo que hay que hablar sobre case esac y read,en la proxima entrada veremos operaciones aritmeticas que no lo hemos visto y es de lo primero que debi haber escrito XD
No hay comentarios.:
Publicar un comentario
Los comentarios serán revisados antes de ser publicados.