Curso de Programación en Bash Shell

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Hola, en este tutorial vamos a ver una aplicación de uso de un ciclo Do While infinito, este script crea un entorno virtual para un proyecto de Python y notifica al usuario como activarlo.

Requerimientos

  • Una terminal de Linux
  • Tener instalado Python 3.+

Script

#This script creeates and activates a venv in Python3                                                                                                                                                                                                                                            

activateVenv () {
    echo"Type 'source ./$1/bin/activate' to activate venv"
}

echo"Welcome to Cactvs!:"
echo"Enter the name of your virtual enviroment:"
read venv
python3 -m venv $venv
while :
do
    echo"Your venv is already built"
    echo"Would you like to know how to activate  your venv [y/n]: "
    read answer
    if [ $answer == 'y' ] || [ $answer == 'Y' ]
    then
        activateVenv $venv
        echo""
        echo"Type 'deactivate' to deactivate the venv "
        break
    elif [ $answer == 'n' ] || [ $answer == 'N' ]
    then
        break
    else
        echo"Invalid option! Try again."
    fi
done
echo"Everything is in the right place!"
sleep 5
exit 0

Explicación del script.

Tenemos una función activateVenv() qu requiere un argumento y que imprime un mensaje que expreal usuario la manera de cómo activar su entorno virtual. El script solicita al usuario el nombre del ambiente virtual, esa cadena se guarda en la variable venv, despues de reccibir un nombre para el nuevo ambiente virtual, ejecuta el comando para la creación del entorno.

Después de que el ambiente fue creado, entramos en un ciclo While infinito de tipo 1-x (primero se ejecuta el bloque, luego se evaluan las condiciones, el bloque se ejecuta al menos una vez), es en este punto que el script nos pregunta si deseamos saber la manera de activar el ambiente y solo tenemos dos opciones válidas [y/n].

Si elegimos una opción invalida, el script no podrá salir del ciclo hasta que elijamos una opción valida, si elegimos ‘y’, entonces invoca la función, expresa la manera en como desactivar el ambiente y se rompe el ciclo con break , si elegimos ‘n’, el cilo se rompe directamente, nótese que no hace distinción de mayúsculas y minúsculas.

Cuando el ciclo se rompe, el script indica que todo terminó, hace una pausa de 5 segundos y se cierra la aplicación.

Intenté activar el ambiente desde el mismo script, pero estuve investigando y resulta que no es posible automatizar la activación via scripting, aquí te dejo la fuente:

https://stackoverflow.com/questions/61906957/how-to-activate-a-python-virtualenv-using-a-bash-script-and-keep-it-after-the-sc

Conclusiones

Este script muestra de manera sencilla la implementación de un sencillo menú de 3 opciones con clausulas if y un ciclo do While infinito de tipo 1-x. Desde luego, podemos hacer un ménu con multiples opciones con el uso de más cláusulas if o con el comando case. Te dejo un ejemplo de esta implementación para que la puedas usar en tus proyectos de scripting:

https://bash.cyberciti.biz/guide/Infinite_while_loop

Si llegaste hasta aquí, te felicito por tu paciencia. Por favor, deja un comentario, eso me ayuda mucho para mejorar mis tutoriales.

Curso de Programación en Bash Shell

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados