Mi reto 3
Bienvenida e Introducción
Todo lo que aprenderás para programar en Bash Shell
Componentes de Linux, Tipos de Shell y Comandos de información
Bash scripting
Crear nuestro primer Script
Ejecutar nuestro script con un nombre único
Programación Shell Básica
Declaración de Variables y Alcance en Bash Shell
Tipos de Operadores
Script con Argumentos
Sustitución de Comandos en variables
Debug en Script
Reto 1
Script Interactivos
Capturar información usuario
Expresiones Regulares
Validar información
Paso de parámetros y opciones
Descargar información de Internet
Reto 2
Condicionales
Sentencias If/Else
Reto 3
If Anidados
Expresiones Condicionales
Sentencias Case
Iteración
Arreglos
Sentencia for loop
Sentencia while loop
Loop Anidados
Break y continue
Menú de Opciones
Reto 4
Archivos
Archivos y Directorios
Escribir dentro de archivos
Leer Archivos
Operaciones Archivos
Reto 5
Empaquetamiento
Empaquetamiento TAR, GZIP y PBZIP 2
Respaldo Empaquetado con clave
Transferir información red
Reto 6
Funciones
Crear funciones y Paso de Argumentos
Funciones de instalar y desinstalar postgres
Funciones sacar y restaurar respaldos en postgres
Reto 7
Cierre del curso
Cierre
Solicitar que se ingrese un valor del 1 al 5.
Según el valor ingresado, hacer la validación utilizando las condicionales e imprimir el resultado.
Construir expresiones de validación numéricas, cadenas y archivos según la opción ingresada.
Aportes 70
Preguntas 0
Mi reto 3
Mi solución al challenge:
#!/bin/bash
# Program:
# This program asks the user to enter a number between 1 and 5.
# If the user enters a number between 1 and 5, the program displays
# the corresponding message.
entered_number=0
read -n1 -p "Enter a number between 1 and 5: " entered_number
echo -e "\n"
if [ $entered_number -eq 1 ]; then
echo "You entered 1"
elif [ $entered_number -eq 2 ]; then
echo "You entered 2"
elif [ $entered_number -eq 3 ]; then
echo "You entered 3"
elif [ $entered_number -eq 4 ]; then
echo "You entered 4"
elif [ $entered_number -eq 5 ]; then
echo "You entered 5"
else
echo "You did not enter a number between 1 and 5"
fi
Mi reto 3.
#! /bin/bash
#Reto 3
#Autor Jose Suarez
read -p "Ingrese su nombre: " nombre
echo -e "\n Bienvenido $nombre \n"
echo "+++++++++++++++++++++++++++++++"
echo " Reto al conocimiento"
echo -e "+++++++++++++++++++++++++++++++\n"
echo "1.- Matematica"
echo "2.- Deportes"
echo "3.- Historia"
echo "4.- Arte"
echo "5.- Geografia"
echo -e "\n++++++++++++++++++++++++++++++++\n"
read -n1 -p "Ingrese su opcion: " opcion
echo -e "\n" case $opcion in
1) read -p " ¿Cual es la raiz cuadrada de 16? " respmat
if [ $respmat = "4" ]; then
echo "Correcto, la raiz cuadrada de 16 es 4"
else
echo "Respuesta incorrecta, la raiz cuadrada de 16 no es $respmat" fi;;
2) read -p " ¿Que organismo que gobierna las federaciones de fútbol en todo el mundo? " respdep
if [ $respdep = "fifa" ] || [ $respdep = "FIFA" ] || [ $respdep = "Fifa" ] ; then
echo "Correcto, la FIFA"
else
echo "Respuesta incorrecta, no es $respdep"
fi;;
3) read -p " ¿Cual es el apellido del Libertador de América? " resphis
if [ $resphis = "Bolivar" ] || [ $resphis = "BOLIVAR" ] || [ $resphis = "bolivar" ]; then
echo "Correcto, el Libertador de América es Simón Bolivar"
else
echo "Respuesta incorrecta, el apellido del Libertador no es $resphis" fi;;
4) read -p " ¿En qué año nació el Pintor Italiano Leonardo da Vinci? " respart
if [ $respart = "1452" ]; then
echo "Correcto, Leonardo da Vinci nació en el 1452 y murió en el año 1519"
else
echo "Respuesta incorrecta, Leonardo da Vinci no nacio en el año $respart"
fi;;
5) read -p " ¿Cual es la capital de Austria? " respgeo
if [ $respgeo = "Viena" ] || [ $respgeo = "VIENA" ] || [ $respgeo = "viena" ]; then
echo "Correcto, la capital de Austria es Viena"
else
echo "Respuesta incorrecta, $respgeo no es la capital de Austria"
fi;;
esac
MI RETO3:
<h1>!/bin/bash</h1> <h1>RETO3</h1> <h1>Autor: Paul Manrique</h1>option=0
edad=0
numero=0
texto1="“
texto2=”“
ruta1=”“
ruta2=”"
echo ""
echo "// DEBE INGRESAR UN VALOR ENTRE 1 y 5 \"
echo "***********"
echo “1: VALIDAR EDAD 1 - 122 *****************"
echo "2: NUMERO ENTRE 1 - 10 / VALIDAR SI ES PRIMO "
echo "3: COMPARAR 2 CADENAS DE TEXTO ****************************"
echo "4: VALIDAR SI EXISTE ARCHIVO "
echo "5: VALIDAR SI EXISTE ARCHIVO Y TIENE PERMISOS DE LECTURA"
echo "”
read -n1 -p “Ingrese el numero:” option
echo -e “\n”
if [ $option = 0 ] || [ $option -ge 5 ]; then
echo ""
echo "ERROR - El numero ingresado: $option - No esta dentro de los parametros"
echo ""
fi
case $option in
1 ) echo "******************"
echo "INGRESE EDAD"
echo "******************"
echo -e "\n"
read -p "Edad: " edad
if [ $edad -le 17 ]; then
echo "Eres menor de edad"
elif [$edad -ge 18 ] && [ $edad -le 122 ]; then
echo "Eres mayor de edad, pero no la persona mas longeva en el mundo segun Guiness"
else [ $edad -ge 122 ]
echo "Eres la persona mas longeva en el mundo segun Guiness"
fi;;
2 ) echo ""
echo "INGRESE NUMERO A VALIDAR ENTRE 1 Y 10"
echo ""
echo -e "\n"
read -p "Numero: " numero
echo -e “\n”
if ($numero = 2) || ($numero = 3) || ($numero = 5) || ($numero = 7); then
echo "El numero ingresado es primo: $numero"
else
echo "El numero ingresado NO es primo $numero"
fi;;
echo ""
echo "INGRESE CADENAS DE TEXTO A COMPARAR"
echo ""
echo -e "\n"
read -p "Primera cadena de texto: " texto1
read -p "Segunda cadena de texto: " texto2
if [ $texto1 = $texto2 ]; then
echo "Las cadenas de texto ingresadas son iguales"
else
echo "Las cadenas de texto son diferentes"
fi;;
echo ""
echo "VALIDAREMOS SI EXISTE EL DIRECTORIO"
echo ""
echo -e "\n"
read -p “Favor ingrese RUTA:” ruta1
if [ -d “$ruta1” ]; then
echo "El path o ruta: $ruta1"
echo "SI - si existe"
else
echo "El path o ruta: $ruta1"
echo "NO - no existe"
fi;;
echo ""
echo "***VALIDAREMOS SI:"
echo "TIENE PERMISOS DE LECTURA"
echo "************************"
echo -e "\n"
read -p “Favor ingrese RUTA” ruta2
if [ -r “$ruta2” ]; then
echo "El directorio ingresado: $ruta2"
echo "SI - POSEE PERMISOS DE LECTURA"
else
echo "El directorio ingresado: $ruta2"
echo "NO - POSEE PERMISOS DE LECTURA"
fi;;
esac
1 #!/bin/bash
2
3 choice=""
4 flag="s"
5
6 while [ $flag = "s" ]
7 do
8 echo "Ingrese una opcion"
9 echo -e "a) \nb) \nc) \nd) \ne) \n"
10
11 read -n1 -p "Que deseas hacer? " choice
12
13 case "$choice" in
14 "a") echo -e "\n\neleccion A\n";;
15 "b") echo -e "\n\neleccion B\n";;
16 "c") echo -e "\n\neleccion C\n";;
17 "d") echo -e "\n\neleccion D\n";;
18 "e") echo -e "\n\neleccion E\n";;
19 esac
20 read -n1 -p "continuaras? [s/n]
21 " flag
22
23 done
# !/bin/bash
# Programa menu basico
# Autor: Adan Galicia
opcion=0
numeroCompu=6
echo "Menu Simple"
read -n1 -p "Ingrese una opcion de la 1-5:" opcion
echo -e "\n"
case $opcion in
1) read -n3 -p "Escribe tu número favorito: " numeroFavorito
if [ $numeroFavorito -lt 11 ]; then
echo -e "\nEl numero es magico"
elif [ $numeroFavorito -ge 10 ] && [ $numeroFavorito -le 100 ]; then
echo -e "\nEl numero es universal"
else
echo -e "\nEl numero es universal"
fi
;;
2) read -n1 -p "Adivina en que número estoy pensando (0-9): " numeroUsuario
if [ $numeroUsuario -lt $numeroCompu ]; then
echo -e "\nTu numero es menor al mio"
elif [ $numeroUsuario -gt $numeroCompu ]; then
echo -e "\nTu numero es mayor al mio"
elif [ $numeroUsuario = $numeroCompu ]; then
echo -e "\nFelicidades, has ganado"
else
echo -e "\nHas encontrado una opcion imposible"
fi
;;
3) read -p "Ingrese un color (en minusculas): " color
if [ $color = "rojo" ]; then
echo -e "\nTu color es rojo"
elif [ $color = "azul" ]; then
echo -e "\nTu color es azul"
elif [ $color = "blanco" ]; then
echo -e "\nTu color es blanco"
else
echo -e "\nEse color aún no esta registrado"
fi
;;
4) read -p "Ingrese un path para ver si exite: " path
if [ -d $path ]; then
echo -e "\nEl path $path existe"
else
echo -e "\nEl path $path NO existe"
fi
;;
5) echo -e "\nHasta la proxima";;
"*") echo "Opcion Incorrecta"
esac
Mi reto 3
# !/bin/bash
# Reto 3: Solicitar que ingrese un valor del 1 al 5. Segun el valor a ingresado validarlo utilizando las condicionales e imprimir segun el valor ingresado. Construir expresiones de validación númericas, cadenas y archivos según opcion ingresada.
option=""
echo "Ingrese el numero correspondiente a la operación que desea realizar."
echo "1) Cuál es mi directorio actual?"
echo "2) Fecha y hora actual"
echo "3) Nombre de Usuario actual"
echo "4) Saber si un package se encuetra instalado"
echo "5) Saber que permisos tengo sobre el directorio actual"
read -p "Ingrese una opcion: " option
echo ""
case $option in
1) pwd;;
2) date;;
3) whoami;;
4) read -p "Ingrese el nombre del package: " package
dpkg -s $package;;
5) ls -la;;
*) echo "La opción ingresada no es valida.";;
esac
#!/bin/bash
#Reto 3
#Escrito por: Abner Recinos
opcion=0
continuar=1
cadena="“
cadena2=”"
while [ $continuar == 1 ]
do
echo " El Preguton (presione un número para comenzar) "
echo " 1.- ¿Es una vocal? "
echo " 2.- Validar numero par "
echo " 3.- Multiplo exacto: "
echo " 4.- ¿Existe este archivo? "
echo " 5.- Verificar existencia de folder "
echo " 6.- Salir "
echo " "
read -n1 -p "" opcion
echo " "
case $opcion in
1 ) read -n1 -p "Escriba una letra: " cadena
echo ""
case $cadena in
"A" ) echo "es una vocal"
;;
"a" ) echo "es una vocal"
;;
"E" ) echo "es una vocal"
;;
"e" ) echo "es una vocal"
;;
"I" ) echo "es una vocal"
;;
"i" ) echo "es una vocal"
;;
"O" ) echo "es una vocal"
;;
"o" ) echo "es una vocal"
;;
"U" ) echo "es una vocal"
;;
"u" ) echo "es una vocal"
;;
* ) echo "No es una vocal"
;;
esac
;;
2 ) read -p "Escriba un número:" cadena
let modulo=$cadena%2
if [ $modulo == 0 ]
then
echo "El número es par"
else
echo "El número es impar"
fi
;;
3 ) echo "Ingrese dos números"
read -p "Valor 1:" cadena
read -p "Valor 2:" cadena2
let modulo=$cadena%$cadena2
if [ $modulo == 0 ]
then
echo "Es exacto"
else
echo "Inexacto, el modulo es $modulo"
fi
;;
4 ) read -p "Ingrese la ruta del archivo" cadena
if [ -f $cadena ]
then
echo "Si"
else
echo "No"
fi
;;
5 ) read -p "Ingrese la ruta de la carpeta" cadena
if [ -d $cadena ]
then
echo "Si"
else
echo "No"
fi
;;
6 ) echo "Hasta pronto"
continuar=0
#exit #para este caso tambien puede usarse esta opcion
;;
* ) echo "No esta dentro de las opciones"
;;
esac
read -p "presione cualquier tecla para continuar" -s cadena
echo ""
done
#!/bin/bash
#Script de resolución reto 3
# Solicitar que se ingrese un valor del 1 al 5. Según el valor ingresado valor a validarlo utilizando las condicionales e imprimir según el valor ingresado. Construir expresiones de valida
ción númericas, cadenas y archivos según la opción ingresada.
echo "
_____________________._______ _________
\__ ___/\______ \ \ \ / / _ \
| | | _/ |\ Y / /_\ \
| | | | \ | \ / | \
|____| |____|_ /___| \___/\____|__ /
\/ \/
"
echo "Elija 1 pregunta e intente responderla correctamente!"
echo "1) Pregunta de Geografia"
echo "2) Pregunta de Historia"
echo "3) Pregunta de Ciencias"
echo "4) Pregunta de Política"
echo "5) Pregunta de Informática"
echo -e ""
read -n1 -p "Escriba el número del tipo de pregunta (1-5) :=> " option
echo -e ""
case $option in
1) read -p "¿Cuál es la capital de Nueva Zelanda? " answerCapital
if [ $answerCapital = "Wellington" ]; then
echo "Excelente! Respuesta correcta!"
else
echo "Lo siento, $answerCapital no es la Capital de Nueva Zelanda!"
fi
;;
2) read -p "¿Cuántos años duró la guerra de los 100 años? " answerGuerra
if [ $answerGuerra -eq 116 ]; then
echo "Excelente! Respuesta correcta!"
else
echo "Lo siento, la Guerra de los 100 años no duró $answerGuerra años!"
fi
;;
3) read -p "¿Cuánto dura la luz del sol en llegar a la tierra?[minutos] " answerLuzSol
if [ $answerLuzSol -eq 8 ]; then
echo "Excelente! Respuesta correcta!"
else
echo "Lo siento, la luz del sol no llega a la tierra en $answerLuzSol minutos!"
fi
;;
4) read -p "¿Cómo se llama el primer presidente de Nicaragua? " answerPresidente
if [ "$answerPresidente" = "Emiliano Chamorro" ]; then
echo "Excelente! Respuesta correcta!"
else
echo "Lo siento, "$answerPresidente" no fue el primer presidente de Nicaragua!"
fi
;;
5) read -p "¿Cuántos bits hay en un Kilobyte? " answerKilo
if [ $answerKilo -eq 8192 ]; then
echo "Excelente! Respuesta correcta!"
else
if [ $answerKilo -gt 8192 ]; then
echo "Lo siento, un Kilobyte es un poco menos que $answerKilo bits!"
else
echo "Lo siento, un Kilobyte es un poco más que $answerKilo bits!"
fi
fi
;;
esac
multiopcion=’’’’
echo "Programa multi-opciones con funcion case"
echo "1 - Registrar Nombre y Apellido"
echo "2 - Registrar Profesion"
echo "3 - Registrar Edad"
echo "4 - Registrar Sexo"
echo "5 - Cancelar"
read -p "Elija una opción con un numero entre 1 y 5: " multiopcion
Val_Name=’^[a-z]{1,15}$‘
Val_Apellido=’^[a-z]{1,15}$‘
Val_Dir=’^[a-z]{1,200}$‘
Val_Edad=’^[0-9]{1,3}$‘
Val_Sexo=’^F|M$’
case $multiopcion in
1)
read -p "Digite su nombre en minusculas: " Name
# Validación del nombre
if [[ $Name =~ $Val_Name ]];
then
echo "CORRECTO!!!"
else
echo "INVALIDO"
fi
read -p "Digite su apellido en minusculas: " Apellido
# Validación del apellido
if [[ $Apellido =~ $Val_Apellido ]];
then
echo "CORRECTO!!!!"
else
echo "INVALIDO"
fi
;;
2)
read -p "Digite su profesion en minusculas: " Dir
# Validación del profesion
if [[ $Dir =~ $Val_Dir ]];
then
echo "CORRECTO!!!!"
else
echo "INVALIDO"
fi
;;
3)
read -p "Digite su edad con numeros: " Edad
# Validación del edad
if [[ $Edad =~ $Val_Edad ]];
then
echo "CORRECTO!!!!"
else
echo "INVALIDO"
fi
;;
4)
read -p "Digite su sexo F|M: " Sexo
# Validación del edad
if [[ $Sexo =~ $Val_Sexo ]];
then
echo "CORRECTO!!!!"
else
echo "INVALIDO"
fi
;;
5)
echo "Eligio la opcion de cancelar. feliz día!!"
;;
*)
echo "Opcion INCORRECTA vuelva a ejecutar el programa"
;;
esac
aca mi humilde codigo
1 #!/bin/bash
2 # Reto numero 3
3 # Autor: Santiago Molina Ibañez - [email protected]
4
5 valor=0
6
7 read -p "Indique un valor 1-5 a mostrar: " valor
8 if [ $valor -eq 1 ]; then
9 echo "su valor es Uno"
10 elif [ $valor -eq 2 ]; then
11 echo "su valor es Dos"
12 elif [ $valor -eq 3 ]; then
13 echo "su valor es Tres"
14 elif [ $valor -eq 4 ]; then
15 echo "su valor es Cuatro"
16 elif [ $valor -eq 5 ]; then
17 echo "su valor es Cinco"
18 else
19 echo "su valor es incorrecto"
20 fi
Mi Reto 3 solucionado
validation="^[1-5]$"
value=0
read -n1 -p "ïngrese el valor: " value
echo -e "\n"
echo "VALIDACION UNO" | lolcat
if (( $value >= 1 )) && (( $value <= 5 )); then
echo "el valor '$value' esta entre 1 y 5" | lolcat
else
echo "el valor '$value' no esta entre 1 y 5" | lolcat
fi
echo "VALIDACION DOS" | lolcat
if [[ $value =~ $validation ]]; then
echo "el valor '$value' esta entre 1 y 5" | lolcat
else
echo "el valor '$value' no esta entre 1 y 5" | lolcat
fi
# !/bin/bash
# Reto 3
echo "¿Que prefieres que te pregunte?"
echo "1 Tu edad"
echo "2 Tu dirección"
echo "3 Tu nombre"
echo "4 Tu pàsión"
echo "5 Tu comidad favorita"
read -n1 -p "Seleccione su opción: " option
echo -e "\n"
if [ $option -eq 1 ]; then
read -p "¿Cuál es tu edad?" edad
elif [ $option -eq 2 ]; then
read -p "¿cuál es tu dirección?: " adress
elif [ $option -eq 3 ]; then
read -p "¿cuál es tu nombre?: " name
elif [ $option -eq 4 ]; then
read -p "¿cuál es tu pasión?: " passion
elif [ $option -eq 5 ]; then
read -p "¿cuál es tu comida favorita?: " food
fi
Mi challenge
####################
#Reto nro 3
nro1=0
usuarioActual=whoami
usuarioIngresado="“
dirIngresado=”“
crearDir=”"
read -p "Ingrese el nro de archivos a crear: " nro1
if (($nro1 > 10));then
echo "El nro de archivos debe ser menor que 10"
else
echo "Se crearon $nro1 archivos"
fi
echo -e “####################################################\n”
echo "Validar si usted es el usuario actual"
read -p “Ingrese el usuario:” usuarioIngresado
if [ $usuarioActual = $usuarioIngresado ]; then
echo "Usted es el usuario $usuarioActual"
else
echo "Usted no es superusuario"
fi
echo -e “####################################################\n”
echo “Comprobar si el directorio existe”
read -p "Ingrese el directorio a comprobar: " dirIngresado
if [ -d $dirIngresado ]; then
echo “Si existe el directorio: $dirIngresado”
else
echo "El directorio $dirIngreado no existe,"
read -n1 -p “Desea crearlo (y/n) :” crearDir
if [ $crearDir = “y” ]; then
echo -e "\nDirectorio $dirIngresado creado exitosamente"
fi
fi
echo -e “####################################################\n”
Mi reto 3
#!/bin/bash
#Author: Erick Valeriano @fishviche
echo -n1 "--------------- INGRESE SU OPCION ---------------"
echo -e "\n"
echo "[1] Matemtica"
echo "[2] Comparativo"
echo "[3] Comprabar existencia de archivo"
echo "[4] Mostar IMC"
echo "[5] Descargar archivo"
read -n1 option
echo -e "\n"
case $option in
1)
read -p "Por favor ingrese el primer numero: " num1
read -p "Por favor ingrese el segundo numero: " num2
echo "La suma es: $(( $num1 + $num2 ))"
echo "La resta es: $(( $num1 - $num2 ))"
echo "La multiplicacion es: $(( $num1 * $num2 ))"
echo "La division es: $(( $num1 / $num2 ))"
;;
2)
read -p "Por favor ingrese el primer numero: " num1
read -p "Por favor ingrese el segundo numero: " num2
if [ $num1 -gt $num2 ]; then
echo "El numero $num1 es mayor que el numero $num2"
elif [ $num1 -lt $num2 ]; then
echo " EL numero $num1 es menor que el numero $num2"
else
echo "Ambos numeros son iguales"
fi
;;
3)
read -p "Por favor ingrese el nombre del archivo: " filExists
routeFile=`pwd`/$filExists
if [ -f $routeFile ]; then
echo "El archivo existe"
else
echo "El archivo no existe"
fi
;;
4)
read -p "Ingrese su tamano (en m): " altura
read -p "Ingrese su peso (en kilogramos): " peso
IMC=$(echo "scale=2; $peso/($altura*$altura)" | bc -l)
echo "Tu IMC es: $IMC"
#OTRA FORMA
#echo "$altura $altura" | awk '{print $1 * $2}'
;;
5)
curl -d '{"perParId": 2021, "fecPresentacion": null}' -H "Content-Type: application/json" https://wb2server.congreso.gob.pe/spley-portal-service/proyecto-ley/lista-con-filtro > proyectos_ley.txt
echo "Descarga finalizada"
;;
*)
echo "Por favor ingrese una opcion correcta"
;;
esac
Este es mi reto el juego del Ahorcado,…
!/bin/bash
#Programa Reto 3
#Autor: Jorge Cl
saved=""
fail=0
Int=6
sum=1
letter=2
echo "Reto 3"
echo "***********Vamos a jugar**********"
echo "******Seleciona solo 1 juego******"
echo "1 Ahorcado"
echo "2 "
echo "3 "
echo "4 "
echo "5 "
read -p "Selecione una opción del [1-5]" option
case "$option" in
1)
echo "*******Vas a Jugar ahorcado******"
read -p "Escribe una palabra: " word
largo=${#word}
for ((i = 1 ; i <= $largo ; i++));
do
shrt=$(echo "$word" | cut -c$i)
# echo "Siguiente letra: $shrt"
# read -p "Escribe la primera letra " letter
while [ $letter != $shrt ]
do
read -p "Escribe la primera letra " letter
if [[ $letter =~ $shrt ]]; then
echo "Bien hecho"
saved=$saved$letter
echo "Letras cocatenadas correctas: $saved"
if [[ $saved =~ $word ]]; then
echo "\ \n FELICITACIONES HAS GANADO EL 3ER RETO PLATZI BASH"
fi
fi
if [[ $letter != $shrt ]] && [[ $fail -le 7 ]]; then
fail=$(($fail+$sum))
echo "La has popiado # de fails $fail !Ojo máximo tienes 7 oportunidades no las desperdicies¡: "
if [[ $fail -eq 1 ]]; then
echo "______"
echo "| |"
echo "|"
echo "|"
echo "__"
fi
if [[ $fail -eq 2 ]]; then
echo "______"
echo "| |"
echo "| 0"
echo "|"
echo "|"
echo "__"
fi
if [[ $fail -eq 3 ]]; then
echo "______"
echo "| |"
echo "| 0"
echo "| | "
echo "|"
echo "|"
echo "__"
fi
if [[ $fail -eq 4 ]]; then
echo "______"
echo "| |"
echo "| 0"
echo "| /| "
echo "|"
echo "|"
echo "__"
fi
if [[ $fail -eq 5 ]]; then
echo "______"
echo "| |"
echo "| 0"
echo "| /|\\"
echo "|"
echo "|"
echo "__"
fi
if [[ $fail -eq 6 ]]; then
echo "______"
echo "| |"
echo "| 0"
echo "| /|\\"
echo "| / "
echo "|"
echo "__"
fi
if [[ $fail -eq 7 ]]; then
echo "Perdiste vuelve a correr el programa"
echo "______"
echo "| |"
echo "| 0"
echo "| /|\\"
echo "| / \\"
echo "|"
echo "__"
exit
fi
fi
done
done
;;
2)
;;
3)
;;
4)
;;
5)
;;
esac
Comparto mi version para el reto:
#!/bin/bash
# Reto #3
echo "Curso de Programacion en Bash Shell - Reto #3"
echo "---------------------------------------------"
valNombre='^[a-zA-Z]+[a-zA-Z ]*$'
valEdad='^([1-9]|[1-9][0-9])$'
valSexo='masculino|femenino'
valPais='^[a-zA-Z]+[a-zA-Z ]*$'
valIdioma='^[a-zA-Z]+[a-zA-Z ]*$'
echo "Opciones disponibles:"
echo "1: Nombre"
echo "2: Edad"
echo "3: Sexo"
echo "4: Pais"
echo "5: Idioma"
echo "0: Salir del Programa"
read -p "Ingrese un valor valido: " valor
case $valor in
0)
echo "Fin del Programa"
exit 0
;;
1)
echo "El valor ingresado es : $valor (CONSULTA DE NOMBRE)"
read -p "Ingrese su nombre : " nombre
if [[ "$nombre" =~ $valNombre ]]; then
echo "El nombre $nombre es VALIDO"
else
echo "El nombre $nombre es INVALIDO"
fi
;;
2)
echo "El valor ingresado es : $valor (CONSULTA DE EDAD)"
read -p "Ingrese su edad : " edad
if [[ "$edad" =~ $valEdad ]]; then
echo -e "La edad $edad es VALIDA. "
if [ "$edad" -ge 18 ]; then
echo -e "Usted es MAYOR DE EDAD"
else
echo -e "Usted es MENOR DE EDAD"
fi
else
echo "La edad $edad es INVALIDA"
fi
;;
3)
echo "El valor ingresado es : $valor (CONSULTA DE SEXO)"
read -p "Ingrese su sexo : " sexo
if [[ "${sexo,,}" =~ $valSexo ]]; then
echo "El sexo $sexo es VALIDO"
else
echo "El sexo $sexo no esta registrado"
fi
;;
4)
echo "El valor ingresado es : $valor (CONSULTA DE PAIS)"
read -p "Ingrese su pais : " pais
if [[ "$pais" =~ $valPais ]]; then
echo "El pais ingresaso es $pais"
else
echo "El nombre de pais $pais es INVALIDO"
fi
;;
5)
echo "El valor ingresado es : $valor (CONSULTA DE IDIOMA)"
read -p "Ingrese su idioma : " idioma
if [[ "$idioma" =~ $valIdioma ]]; then
echo "El idioma ingresado es $idioma"
else
echo "El idioma $idioma es INVALIDO"
fi
;;
*)
echo "El Valor ingresado es: $valor (OPCION NO VALIDA)"
;;
esac
# !/bin/bash
#Programa para ejempificar un menú.
#Autor: Nicolás Rodríguez @chino.rodgz
echo "Por favor ingrese un número según corresponda: "
echo "----------------------(1) Crear un archivo ------------------------------"
echo "----------------------(2) Multiplicar -----------------------------------"
echo "----------------------(3) Quiz ------------------------------------------"
echo "----------------------(4) Validación de usuario -------------------------"
echo "----------------------(5) Salir -----------------------------------------"
read -p "Opción: " option
clear
case "$option" in
1)
echo "Ingrese el nombre del archivo "
read -p "Nombre: " archiveName
echo "Ingrese la extensión del archivo (Por ejemplo 'txt')"
read -p "Extensión: " archiveExtension
touch $archiveName.$archiveExtension
;;
2,0-1 Top
3)
echo "¿En qué año Colón llegó por primera vez a América?"
read -p "Respuesta: " answer
if [[ $answer == "1492" ]];then
echo "Muy bien! Esa es la respuesta correcta!"
else
echo "Su respuesta es incorrecta. Fue en el año 1492."
fi
;;
4)
echo "Ingrese un nombre de usuario por favor"
read -p "usuario: " userName
if [[ $userName == "Nico" ]];then
echo "Nombre de usuario válido"
else
echo "Nombre de usuario inválido"
fi
;;
5)
exit 0
;;
*) echo "Ingrese una opción válida por favor";;
esac
shift
#!/bin/bash
#reto3
#Solicitar valor del 1 al 5
regnumero=’^([1-5]{1})$‘
regrut=’^([0-9]{8}±[0-9Kk]{1})‘
regfecha=’^([0-9]{4}±[1-12]{2}±[0-9]{1,2})$’
read -p “Ingrese numero (1-5) :” numero
if [[ $numero =~ $regnumero ]]; then
echo "numero valido"
else
echo "numero no valido"
fi
echo “Numero ingresado es:” $numero
#Según el valor ingresado, hacer la validación utilizando las condicionales e imprimir el resultado.
#Construir expresiones de validación numéricas, cadenas y archivos según la opción ingresada.
read -p “Ingrese RUT (111111111-1):” rut
if [[ $rut =~ $regrut ]]; then
echo "correcto"
else
echo "Incorrecto"
fi
echo “RUT :” $rut
read -p “Ingrese fecha de Nacimiento: (aaaa-mm-dd) :” fecha
if [[ $fecha =~ $regfecha ]]; then
echo “correcto”
Reto 3
#Solicitar que se ingrese un valor del 1 al 5. Según el valor ingresado valor a validarlo utilizando las condicionales e imprimir según el valor ingresado. Construir expresiones de validaciòn númericas, cadenas y archivos según la opción ingresada.
opcion=""
echo "Menu"
echo "1 - suma de numeros"
echo "2 - resta de numeros"
echo "3 - Ejercicio matematico"
echo "4 - Pregunta!!"
echo "5 - Existe el directorio?"
read -p "Ingrese la opción" opcion
case $opcion in
"1") echo -e "\nSuma"
read -p "ingrese 1 numero: " num1
read -p "ingrese otro numero: " num2
echo "la suma de los numeros es $(($num1 + $num2))";;
"2") echo -e "\nResta"
read -p "ingrese 1 numero: " num1
read -p "ingrese otro numero: " num2
echo "la resta de los numeros es $(($num1 - $num2))";;
"3") echo -e "\nEjercicio"
read -p "8+1*5=" resultado
if [ $resultado == 13 ]; then
echo "correcto el resultado es $resultado"
else
echo "$resultado no es el resultado esperado"
fi;;
"4") echo -e "\nResponda la pregunta"
read -p "Que planeta tiene como apado 'El planeta rojo': " respuesta
if [ $respuesta == "marte" ]; then
echo "Respuesta correcta"
else
echo "$respuesta es incorrecta"
fi;;
"5") echo -e "\nValidar si existe un directorio"
read -p "Ingrese un path de directorio:" directorio
if [ -d $directorio ]; then
echo "Si existe el path"
else
echo "No existe el path"
fi;;
*) echo "opción no valida, solo van desde el 1 al 5"
esac
Mi reto 3
Reto 3
# !/bin/bash
# Programa que recibe una opción numérica, la imprime en pantalla
# y valida qué tipo de respuesta introdujo el usuario
option=""
numRegex='^[0-9]*$'
strRegex='^[a-z,A-Z,0-9,!"#$%&/()=?¡¿]*$'
echo "Validador de entrada"
read -p "Introduzca una opción del 1 al 5: " option
if [[ "$option" =~ $numRegex ]]; then
if [ "$option" -eq "1" ]; then
echo "Seleccionaste la opción $option"
elif [ "$option" -eq "2" ]; then
echo "Seleccionaste la opción $option"
elif [ "$option" -eq "3" ]; then
echo "Seleccionaste la opción $option"
elif [ "$option" -eq "4" ]; then
echo "Seleccionaste la opción $option"
elif [ "$option" -eq "5" ]; then
echo "Seleccionaste la opción $option"
else
echo "Opción inválida: fuera del rango numérico"
fi
elif [[ "$option" =~ $strRegex ]]; then
echo "Opción inválida: Has introducido una cadena de texto"
else
echo "Opción inválida: No reconocida"
fi
Mi reto 3 con validaciones regex
# ! /bin/bash
# Programa para ejemplificar el uso de condicionales con validaciones numéricas, cadenas y archivos
op=0
echo "-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
echo "1. Ingresa tu fecha de nacimiento"
echo "2. Ingresa tu nombre completo"
echo "3. Ingresa el nombre de tu CV en pdf"
echo "4. Ingresa tu código postal"
echo "5. Ingresa el código de tu estado"
echo "-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
echo -e "\n"
read -n1 -p "Ingresa una opción del 1-5: " op
echo -e "\n"
dobRgx='^(19|20)[0-9]{2}-[0-9]{2}-[0-9]{2}$'
nombreRgx='^[A-z]{100}$'
cvRgx='^.+\.pdf$'
cpRgx='^[0-9]{5}$'
estadoRgx='^[A-Z]{3}$'
clear
if [ $op -eq 1 ]; then
read -p "Fecha de Nacimiento: " dob
echo -e "\n"
if [[ $dob =~ $dobRgx ]]; then
echo "Fecha de nacimiento ingresada correctamente"
else
echo "Fecha incorrecta, favor de ingresar en el formato YYYY-mm-dd"
fi
elif [ $op -eq 2 ]; then
read -p "Primer Nombre: " nombre
echo -e "\n"
if [[ $nombre =~ $nombreRgx ]]; then
echo "Nombre ingresado correctamente"
else
echo "Nombre incorrecto, favor de ingresar solo letras"
fi
elif [ $op -eq 3 ]; then
read -p "CV en formato pdf: " cv
echo -e "\n"
if [[ $cv =~ $cvRgx ]]; then
echo "Archivo pdf ingresado correctamente"
else
echo "CV incorrecto, favor de ingresar un archivo con extensión .pdf"
fi
elif [ $op -eq 4 ]; then
read -p "Código Postal: " cp
echo -e "\n"
if [[ $cp =~ $cpRgx ]]; then
echo "Código postal ingresado correctamente"
else
echo "Código postal incorrecto, favor de ingresar un código de 5 digitos"
fi
elif [ $op -eq 5 ]; then
read -p "Código de Estado: " estado
echo -e "\n"
if [[ $estado =~ $estadoRgx ]]; then
echo "Código de estado ingresado correctamente"
else
echo "Código de estado incorrecto, favor de ingresar un código de 3 carácteres de longitud"
fi
else
echo "Usted ha ingresado una opción incorrecta: $op"
fi
cumpliendo con el reto 😀
#!/bin/bash
# Programa para solicitar un valor del 1 al 5,
# Según el valor ingresado, hacer la validación utilizando las codicionales e imprimir el resultado
# Construir expresiones de validación numéricas, cadesna y archivos según la opción ingresada
# Autor: stevensocio - [email protected]
option=0
echo "RETO #3"
echo "1- Validar la fecha yyyy-mm-dd"
echo "2- Validar el año actual."
echo "3- Validar que día de la semana estamos."
echo "4- Validar en que mes estamos."
echo "5- Validar en que día del mes estamos."
echo "Ingresa un número del 1 al 5 de acuerdo al menú."
read -n 1 -p "> " option
echo -e "\n"
if [ $option == 1 ]; then
echo "Vamos a validar la fecha actual"
read -p "Ingresa la fecha en formato yyyy-mm-dd > " date
GET_DATE=$(date +"%Y-%m-%d")
if [ $date == $GET_DATE ]; then
echo "La fecha es correcta, estamos a $GET_DATE"
else
echo "La fecha que ingresaste $date no es correcta :("
echo "La fecha correcta es > $GET_DATE"
fi
elif [ $option == 2 ]; then
echo "Vamos a validar el año actual"
read -p "En que año estamos > " year
GET_YEAR=$(date +"%Y")
if [ $year == $GET_YEAR ]; then
echo "El año es correcto."
else
echo "El año que ingresaste $year no es correcto :("
echo "El año actual es > $GET_YEAR"
fi
elif [ $option == 3 ]; then
echo "Vamos a validar que día de la semana estamos"
read -p "Ingresa el día de la semana de hoy > " weekday
PARSE_LOWER_CASE="${weekday,,}"
GET_WEEKDAY=$(date +"%A")
if [ $PARSE_LOWER_CASE == $GET_WEEKDAY ];then
echo "El día de la semana es correcto, hoy estamos a $GET_WEEKDAY"
else
echo "El día de la semana que ingresaste $PARSE_LOWER_CASE no es correcto"
echo "El día de la semana es $GET_WEEKDAY"
fi
elif [ $option == 4 ]; then
echo "Vamos a validar en que mes estamos"
read -p "Ingresa el mes en que estamos > " month
PARSE_LOWER_CASE="${month,,}"
GET_MONTH=$(date +"%B")
if [ $PARSE_LOWER_CASE == $GET_MONTH ];then
echo "El mes es correcto, el mes actual es $GET_MONTH"
else
echo "El mes que ingresaste $PARSE_LOWER_CASE no es correcto"
echo "El mes actual es $GET_MONTH"
fi
elif [ $option == 5 ]; then
echo "Vamos a validar en que día del mes estamos"
read -p "Ingresa el día del mes de hoy > " day
GET_DAY=$(date +"%d")
if [ $day == $GET_DAY ]; then
echo "El día es correcto, hoy estamos a $GET_DAY"
else
echo "El día que ingresaste $day no es correcto :("
echo "El día de hoy es > $GET_DAY"
fi
fi
Me sirvio específicamente para una tarea, pero aplique el concepto.
#!/bin/bash
#Imprimir datos a partir de los valores ingresados, a través de las condicionales if, else.
#Autor: Chanchi
# Variables
value=0
echo "Calculadora de la función -x^3"
read -p "Digite un valor del 1 al 5 para hallar x, no se admite décimales y valores no indicados dentro del rango: " value
if (( $value == 1 )); then
echo "El valor de la función de $value es: f(1)= y =" $(( (-1)*1*1 ))
elif (( $value == 2 )); then
echo "El valor de la función de $value es: f(2)= y =" $(( (-2)*2*2 ))
elif (( $value == 3 )); then
echo "El valor de la función de $value es: f(3)= y =" $(( (-3)*2*2 ))
elif (( $value == 4 )); then
echo "El valor de la función de $value es: f(4)= y =" $(( (-4)*4*4 ))
elif (( $value == 5 )); then
echo "El valor de la función de $value es: f(5)= y =" $(( (-5)*5*5 ))
else
echo "El valor que digito o no es el indicado o está fuera del rango de los números indicados, no seas un troll eh ;)"
fi
#!/bin/bash
#¡¡ IMPORTANTE !! -> la ruta para que encuentre el archivo debe ser canviada en funcion de donde este el archivo
optionRegex="^[1-3]{1}$"
numeroRegex="^[1-5]{1}$"
pais=""
path_archivo=""
echo "Esto es un juego"
sleep 1
echo -e "\nEMPEZEMOS!"
echo -e "\n"
read -p "Elige una opción del 1- 3: " option
case $option in
1) read -p "Tengo 5 euros y las manzanas cuestan 1,2€, ¿cuantas puedo comprar?: " numero
if [[ $numero =~ $numeroRegex ]] && [[ $numero -lt 5 ]]; then
echo "Enhorabuena, lo has acertado, puedo comprar menos de 5 manzanas"
else
echo "Vuelve a primaria chabal"
fi
;;
2) read -p "¿Donde preferírias vivir? " pais
if [[ $pais = "Islandia" ]] || [[ $pais = "islandia" ]]; then
echo "Yo tambien quiero vivir allí"
else
echo -e "\n¿Enserio? ¿No prefieres vivir en Islandia?"
sleep 2
echo -e "\n¿Quién no quiere vivir en Islandia?"
sleep 1
echo -e "\n..."
sleep 1
echo -e "\nBicho raro"
fi
;;
3) read -p "¿Donde esta el archivo reto_3.sh?: " path_archivo
if [[ -e $path_archivo ]] && [[ $path_archivo = "/home/choverivan/shellCourse/reto_3.sh" ]]; then
echo "Has encontrado el archivo reto3"
elif [[ -d $path_archivo ]] && [[ $path_archivo = "/home/choverivan/shellCourse" ]]; then
echo "Has encontrado el directorio del curso"
else
echo "No se lo que estas buscando"
fi
;;
*) echo "Esa opción es incorrecta"
esac
Mi reto basado en la validación de archivos:
#!/usr/bin/bash
# Reto 3
option=0
path=""
echo "===================================="
echo "===================================="
echo "===== Verificación de archivos ====="
echo "Ingrese una opción:"
echo "1. Validar directorio"
echo "2. Validar archivo"
echo "3. Validar permisos de lectura"
echo "4. Validar permisos de escritura"
echo "5. Validar permisos de ejecución"
echo -e "6. Validar si archivo posee contenido\n"
read
option=$REPLY
if [[ $option -gt 6 ]] || [[ $option -lt 1 ]]; then
echo "Opción inválida"
exit
fi
echo -e "Ingrese la ruta a verificar"
read
path=$REPLY
case $option in
1)
if [[ -d $path ]]; then
echo "Es un directorio válido"
else
echo "No es un directorio válido"
fi;;
2)
if [[ -e $path ]]; then
echo "Es un archivo válido"
else
echo "No es un archivo válido"
fi;;
3)
if [[ -r $path ]]; then
echo "Posee permisos de lectura"
else
echo "No posee permisos de lectura"
fi;;
4)
if [[ -w $path ]]; then
echo "Posee permisos de escritura"
else
echo "No posee permisos de escritura"
fi;;
5)
if [[ -x $path ]]; then
echo "Posee permisos de ejecución"
else
echo "No posee permisos de ejecución"
fi;;
6)
if [[ -s $path ]]; then
echo "Posee contenido"
else
echo "No posee contenido"
fi;;
esac
exit
Aqui mi aporte:
#reto3
#@Autor: Jared
key=“password”
read -n1 -p "Ingrese Una Opcion (1-5) " opcion
case $opcion in
1) echo -e "\nOpcion 1 (Comparacion de Numeros)\n"
read -n1 -p "Ingrese un Numero (0-9) " num1
echo -e "\n"
read -n1 -p "Ingrese otro Numero (1-5) " num2
if [ $num1 -lt $num2 ]; then
echo -e "\n$num1 es menor que $num2"
elif [ $num1 -gt $num2 ]; then
echo -e "\n$num1 es mayor que $num2"
elif [ $num1 -eq $num2 ]; then
echo -e "\n$num1 es igual a $num2"
fi
;;
2) echo -e "\nOpcion 2 (Comparacion de Cadenas)\n"
read -p "Cual es el password? " pass
if [ $pass = $key ]; then
echo -e "\nAcceso Correcto"
else
echo -e "\nAcceso Incorrecto, se notificara al administrador del sistema!"
fi
;;
3) echo -e "\nOpcion 3 (Comparacion de Directorios)\n"
read -p "Cual es el Archivo/Directorio a Buscar? " dire
if [ -e $dire ]; then
echo -e "\nEl Archivo/Directorio Existe"
else
echo -e "\nEl Archivo/Directorio no Existe!"
fi
;;
4) echo -e "\nOpcion 4 - Operacion No Implementada";;
5) echo -e "\nOperacion 5 - Ha Salido Correctamente";;
*) echo -e "\nOperacion No Permitida";;
esac
Solución a reto 3
#!/bin/bash
# programa reto 3:
#Solicitar que se ingrese un valor del 1 al 5.
# Según el valor ingresado valor a validarlo utilizando las condicionales e imprimir según el valor ingresado.
# Construir expresiones de validación numéricas, cadenas y archivos según la opción ingresada.
# Autor: Carlos Javier García Contreras
opcion=""
echo "Menú básico de reto 3 platzi"
echo "Ingresa la opción que deses con un número"
echo "1) mostrar fecha actual"
echo "2) mostrar la cantidad de procesadores"
echo "3) mostrar kernel"
echo "4) mostrar calendario"
echo "5) mostrar la versión de vim "
read -n1 -p "Ingresa un valor del 1 al 5: " opcion
echo -e "\n"
echo "Seleccionó la opción: "$opcion
case $opcion in
"1") echo "fecha actual" ; date ;;
"2") echo "Cantidad de procesadores" ; nproc ;;
"3") echo "versión kernel" ; uname -r ;;
"4") echo "Calendario" ; date ;;
"5") echo "versión de vim " ; vim --version |head -n1 ;;
*) echo "solo se pueden seleccionar del 1 al 5"
esac
Me tarde mas de 3 horas pero al fin lo termine :’) 😂 por si alguien quiero usarlo como guía para hacer el suyo.
|
|
|
#!/bin/bash
#RETO 3 Solicitar que se ingrese un valor del 1 al 5. Según el valor ingresado valor a validarlo utilizando las condicionales e imprimir según el valor ingresado. Construir expresiones de validaciòn númericas, cadenas y archivos según la opción ingresada.
option=0
echo -e "=====================BIENVENIDO===================\n"
echo -e "MENU\n[1]-Resta\n[2]-Multiplicacion\n[3]-Suma\n[4]-Division\n[5]-Potencia\n"
read -p "Ingresa una opcion: " option
case $option in
1)
read -p "Ingresa el primer numero: " n1
read -p "Ingresa el segundo numero: " n2
if [ $n2 -gt $n1 ]; then
echo "No podemos hacer operaciones negativas"
else
echo "El resultado es: $((n1 - n2))"
fi
;;
2)
read -p "Ingresa el primer numero: " n1
read -p "Ingresa el segundo numero: " n2
echo "El resultado es: $((n1*n2))"
;;
3)
read -p "Ingresa el primer numero: " n1
read -p "Ingresa el primer numero: " n2
echo "El resultado es: $((n1+n2))"
;;
4)
read -p "Ingresa el dividendo: " n1
read -p "Ingresa el divisor: " n2
echo "El resultado es: $((n1/n2))"
;;
5)
read -p "Ingresa el numero: " n1
read -p "Ingresa el la potencia: " n2
echo "El resultado es: $((n1 ** n2))"
;;
*) echo "Selecciona una opcion correcta";;
esac
Espero su retroalimentación
<code>
```#!/bin/bash
#Reto del profesor
#Alumno jdavilar [email protected]
software=""
validar=0
echo "Que software deseas descargar en tu servidor"
echo "A) Apache"
echo "B) Nginx"
echo "C) Mysql"
read -p "las opciones son [A-C]" software
case $software in
"A")
echo "Se descargara Apache desde el sitio original"
read -p "Confirma oprimiendo (1) si deseas descargar el archivo zip de la web principal" validar
if [ $validar -eq 1 ]; then
echo "se descarga"
wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.54/bin/apache-tomcat-8.5.61.zip
else
echo "No se descarga"
fi;;
"B")
echo "Se descargra Nginx desde el sitio original"
read -p "Confirma oprimiendo (2) si deseas descargar el archivo zip de la web principal" validar
if [ $validar -eq 2 ]; then
echo "se descarga"
apt-get install nginx
else
echo "No se descarga"
fi;;
"C")
echo "se descargara Mysql desde el sitio original"
read -p "Confirma oprimiendo (3) si deseas descargar el archivo zip de la web principal" validar
if [ $validar -eq 3 ]; then
echo "se descarga"
apt install mysql_server
else
echo "No se descarga"
fi;;
*) echo "No selecionaste ninguna opcion, bye"
esac
#!/bin/bash
<h1>Challenge 3</h1> <h1>Autor: John Florez</h1>option=0
name="“
age=0
file_path=”"
name_regex=’^([A-Z]{1}[a-z]+)\s?([A-Z]{1}[a-z]+)?$’
echo "Verify Information"
echo "1 -Name"
echo "2 -Age"
echo "3 -CV path"
echo "4 -Exit"
read -p "Choose an option (1 - 4): " option
echo -e “\n”
while [ ! $option -eq 4 ]
do
case $option in
1)
echo -n "Type your name: "
read
name=$REPLY
if [[ $name =~ $name_regex ]]; then
echo "It is a valid name"
else
echo "It is not a valid name"
fi
echo -n "Choose an option (1 - 4): "
read
option=$REPLY;;
2)
echo -n "Type your age: "
read
age=$REPLY
if [[ $age -ge 18 ]]; then
echo "You can continue the process"
echo -n "Choose an option (1 - 4): "
read
option=$REPLY
else
echo "You cannot continue the process."
option=4
fi;;
3)
echo -n "Type the CV path: "
read
file_path=$REPLY
if [ -d $file_path ]; then
echo "It is a valid path."
else
echo "It is not a valid path."
fi
echo -n "Choose an option (1 - 4): "
read
option=$REPLY;;
*)
echo -e "\nInvalid option"
echo -n "Choose an option (1 - 4): "
read
option=$REPLY;;
esac
done
Listo
#!/bin/bash
# Programa para utilziat expresiones Case
# DBZ
opcion=""
echo "Ejemplo Sentencia Case"
read -p "Ingrese su calificacion del curso del 1 - 5:" opcion
echo -e "\n"
case $opcion in
"1") echo -e "Esto es un curso!!!!!!";;
"2") echo -e "Curso malo.";;
"3") echo -e "Curso regular.";;
"4") echo -e "Curso bueno.";;
"5") echo -e "Curso excelente.";;
[6-9]) echo -e "Esta calificaciones no se puede evaluar.";;
"*") "Opción Incorrecta"
esac
echo "Ud selecciono la opcion: $opcion"
# !/usr/bin/fish
set-l count
set-l stars
whiletrue
read -n1 -P '¿Cuántas estrellitas le darías a este curso? (1-5)> ' count
if string match --regex --quiet '^[1-5]$'$count
break
else
echo'Por favor, introduce un número del 1 al 5'
end
end
# String ######################################################################
echo-e'\nWith the `string` builtin command'
echo'Gracias por darle estás estrellitas al curso '(string repeat -n $count'🌟')
# For #########################################################################
for ignore in (seq $count)
set stars "$stars🌟"
end
echo-e'\nWith `for`'
echo"Gracias por darle estás estrellitas al curso $stars"
# Switch-case #################################################################
switch $count
case'1'
set stars '🌟'
case'2'
set stars '🌟🌟'
case'3'
set stars '🌟🌟🌟'
case'4'
set stars '🌟🌟🌟🌟'
case'5'
set stars '🌟🌟🌟🌟🌟'
case'*'
exit 1 # Should not be reached
end
echo-e'\nWith `switch-case`'
echo"Gracias por darle estás estrellitas al curso $stars"
Creo que esta mal redactada la pregunta
# !/bin/bash
# Reto 3: Condicionales
opcion=0
echo "Reto de ocpiones condicionales"
echo -e "\n"
echo "Seleccione una de las siguientes opciones [1-5]"
echo "1. Abrir archivo"
echo "2. Guardar archivo"
echo "3. Gardar archivo con diferente nombre"
echo "4. Copiar archivo"
echo "5. Cerrar archivo"
echo -e "\n"
read -p ": "
case $opcion in
1) echo "Eligió Abrir archivo...";;
2) echo "Eligió Guardar archivo...";;
3) echo "Eligió Guardar archivo con diferente nombre...";;
4) echo "Eligió Copiar archivo...";;
5) echo "Eligió Cerrar archivo...";;
*) echo "La opción que eligió no se encuentra dentro del listado, vuelva a intentar."
esac
[email protected]:/media/sf_shellCourse$ ./reto3.sh
Reto de ocpiones condicionales
Seleccione una de las siguientes opciones [1-5]
1. Abrir archivo
2. Guardar archivo
3. Gardar archivo con diferente nombre
4. Copiar archivo
5. Cerrar archivo
: t
La opción que eligió no se encuentra dentro del listado, vuelva a intentar.
# ! \bin\bash
# Programa para Ejecutar Comandos Case.
# Autor:Luis Taque Diaz
letra=""
numero=0
archiv=""
echo "Reto if "
read -n1 -p "Ingrese una opcion de la A - D: " letra
case $letra in
"A") echo " Con esta letra Escribimos la palabra Arbol ";;
"B") echo " Buba";;
"C") echo " C de Case";;
"D") echo " D de do";;
[E-Z]) echo " Opcion No Habilitada"
esac
echo -e "\n"
read -n1 -p " Ingrese Un Numero de la 1-3 : " numero
if [ $numero -eq 1 ]; then
echo " Ingresaste el Numero Uno"
elif [ $numero -eq 2 ]; then
echo " Ingresaste el Numero Dos"
elif [ $numero -eq 3 ]; then
echo " Ingresaste el Numero Tres"
else
echo "Numero No Valido "
fi
read -p " Ingrese Un Nombre de Archivo : " archivo
if [ -f $archivo ]; then
echo "Archivo Existe"
else
echo "No existe el Archivo"
fi
echo "Reto Completado de Forma Existosa"
# !/bin/bash
# Programa para ejemplificar el uso de la sentencia case
# Autor: Javier Eduardo Morón - @jmendoza
opcion=""
echo "Reto 3"
read -n1 -p "Ingrese una opción del 1-5:" opcion
echo -e "\n"
case $opcion in
[1-5])
if [ $opcion == 1 ]; then
echo "Elegiste la opción número uno"
elif [ $opcion == 2 ]; then
echo "Elegiste la opción número dos"
elif [ $opcion == 3 ]; then
echo "Elegiste la opción número tres"
elif [ $opcion == 4 ]; then
echo "Elegiste la opción número cuatro"
elif [ $opcion == 5 ]; then
echo "Elegiste la opción número cinco"
fi;;
esac
expresion=’^[1-5]$'
read -p "Ingrese una opción [1-5] " opcion
if [[ $opcion =~ $expresion ]]; then
echo -e "\nOpción correcta "
else
echo -e "Opción incorrecta"
fi
# !/bin/bash
# Reto 2: Solicitar Información personal y luego imprimir los datos
# Autor: Ian Duran
opcion=""
echo " Reto 3 "
echo "----------"
echo -e "\nIngrese una opción a continuación"
echo -e "A)Conocer la ruta actual del archivo B) Validar si un fichero existe
C) Verificar si el alumno aprobó el examen D) Verificar si es mayor de edad
E) Verificar si un directorio existe"
read -n1 opcion
case $opcion in
"A")
echo ""
pwd
echo "";;
"B")
echo ""
read -p "Ingrese el nombre de un fichero: " filePath
if [ -e $filePath ]; then
echo "El fichero existe"
else
echo "El fichero no existe"
fi;;
"C")
echo ""
read -p "Ingrese la nota del examen: " nota
if (( $nota >=51 )); then
echo "Aprobó el examen"
else
echo "Reprobó el examen"
fi;;
"D")
echo ""
read -p "Ingrese su edad: " edad
if [ $edad -ge 18 ]; then
echo "Es mayor de edad"
else
echo "Aun es menor de edad"
fi;;
"E") echo -e "\nLo sentimos, esta opcion no fue implementada";;
*) echo -e "\nOpción no valida";;
esac
read -n1 -s -r -p "Presione cualquier tecla para salir. "
echo ""
exit
#! /bin/bash
#Programa para ingresar una opcion y realizar cinco opciones
opcion=""
opcion1=0
url=""
urlRegex='.*.jpg'
valor1=0
valor2=0
op=""
resultado=0
echo -e "Programa para realizar cinco acciones\n
1 .- Descargar una imagen de internet
2 .- Verificar la edad del usuario
3 .- Calculadora Basica
4 .- Observar un archivo
5 .- salir\n"
read -p "Ingrese una opcion [1-5]: " opcion
case $opcion in
"1")
echo "Descargar una imagen de internet
1.- Ingresar URL
2.- Descargar cualquiera"
read -p "Ingrese una opcion: " opcion1
if [ $opcion1 = 1 ]; then
read -p "Ingrese la url: " url
if [[ !( $url =~ $urlRegex) ]]; then
echo "URL Inválida"
else
wget $url
fi
elif [ $opcion1 = 2 ]; then
echo "Se ha descargado una imagen"
wget "https://ichef.bbci.co.uk/news/410/cpsprodpb/10E9B/production/_109757296_gettyimages-1128004359.jpg"
mv _109757296_gettyimages-1128004359.jpg gatito.jpg
fi
;;
"2")
echo "Verificar la edad del usuario"
read -p "ingrese su edad: " edad
if [ $edad -lt 12 ]; then
echo "El usuario es un niño"
elif [ $edad -ge 12 ] && [ $edad -lt 18 ] ; then
echo "El usuario es un adolecente"
else
echo "El usuario es adulto"
fi
;;
"3")
echo "Calculadora basica"
read -p "ingrese valor 1: " valor1
read -p "ingrese valor 2: " valor2
echo "Operacion:
1.- SUMA
2.- RESTA
3.- MULTIPLICACION"
read -p "Ingrese una operacion: " op
case $op in
"1")
$resultado= $valor1 + $valor2;;
"2")
$resultado= $valor1 - $valor2;;
"3")
$resultado= $valor1 * $valor2;;
esac
echo "El resultado de la operacion es: " ${resultado}
;;
"4")
read -p "ingrese el nombre del archivo que deseea observar: " archivo
cat $archivo
;;
"5")
echo "Gracias por usar la aplicación";;
esac
# !/bin/bash
#reto 3
#AUTOR: JI-Villalobos
opcion=0
pathArchivo=""
read -n1 -p "Ingrese el valor de la operacion (1-5): " opcion
if [ $opcion = 1 ]; then
echo "Guardando archivo"
elif [ $opcion = 2 ]; then
echo "eliminando archivo"
elif [ $opcion = 3 ]; then
echo "Copiando archivo"
read -p "Ingrese la ruta donde se guardara el archivo: " pathArchivo
if [ -d $pathArchivo ]; then
echo "El directorio existe"
else
echo "El directorio no existe"
fi
elif [ $opcion -ge 4 ]; then
echo "Opcion no implementada"
fi
<code>
#!/bin/bash
#Solicitar ingresar un valor del 1 al 5. Segun el valor ingresado validarlo
# utilizando los condicionales e imprimir segun el valor ingresado.
# Construir expresiones de validacion numericas, cadenas y archivo segun la
# opcion ingresada
option='^[1-5]$'
valinum='^[0-9]*$'
valchar='^[a-zA-Z ]*$'
valdir='^[a-zA-Z0-9.-_/]*$'
read -p "Ingrese un valor del 1 al 5: " option
echo -e "\n"
case $option in
1) echo -e "Validacion numerica"
read -p "Ingrese un numero: " numero
if [[ $numero =~ $valinum ]] ; then
echo "El numero ingresado es: " $numero
else
echo "Debe ingresar un numero"
fi
;;
2) echo -e "Validacion de cadena"
read -p "Ingrese una cadena: " cadena
if [[ $cadena =~ $valchar ]] ; then
echo "La cadena ingresada es: " $cadena
else
echo "Debe ingresar una cadena"
fi
;;
3) echo -e "Validacion de directorio"
read -p "Ingrese un directorio : " dir
if [[ -d $dir ]] && [[ $dir =~ $valdir ]] ; then
echo $dir " es un directorio existente"
else
echo "El directorio no existe"
fi
;;
4) echo -e "En que directorio estoy parado"
pwd
;;
5) echo -e "Mostar la variable de entorno PATH del usuario"
echo $PATH
;;
*) echo "La opcion no es la correcta, por favor elija una opcion del 1 al 5"
;;
esac
#!/bin/bash
# Programa para solicitar valores (1-5) y realizar validaciones.
# Autor: @eyurivilc
opcion="^[0-5]$"
valNumero='^[0-9]*$'
valCaracter='^[a-zA-Z]*$'
valDirectorio='^[a-zA-Z0-9.-_/]*$'
read -p "Ingrese una opción del 1 al 5 : " opcion
echo -e "\n"
case $opcion in
1) echo -e "\nValidación de un número"
read -p "Ingrese un número: " numero
if [[ $numero =~ $valNumero ]]; then
echo "El número $numero es válido"
else
echo "El número $numero NO es válido"
fi
;;
2) echo -e "\nValidación de un caracter"
read -p "Ingrese una cadena de texto: " caracter
if [[ $caracter =~ $valCaracter ]]; then
echo "La cadena $caracter es válida"
else
echo "La cadena $caracter NO es válida"
fi
;;
3) echo -e "\nVerificación de un directorio"
read -p "Ingrese una ruta de directorio valido: " directorio
if [[ $directorio =~ $valDirectorio ]]; then
echo "La ruta: $directorio es correcta"
else
echo "La ruta: $directorio NO existe!"
fi
;;
4) echo -e "\nMi directorio actual"
rutaActual=`pwd`
echo "La ruta actual es: $rutaActual"
;;
5) echo -e "\nMostrar el directorio del usuario"
rutaUsuario=`echo $PATH`
echo "Mostrar la variable de entorno PATH: $rutaUsuario"
;;
*) echo -e "\nLa opción no es correcta. :(";;
esac
# !/bin/bash
# Programa del reto 3 - Programación bash
# Autor: Juan Pablo @JPJimenezE
opcionRegex="^[1-5]{1}$"
opcion=0
numeroRegex="^[0-9]+$"
numero=0
cadenaRegex="^[a-ZA-Z]+$"
cadena=""
archivo=""
clear
echo "****************************"
echo "** Programa de validación **"
echo "** 1- Validacion números **"
echo "** 2- Validación cadenas **"
echo "** 3- Validación archivos **"
echo "** 4- Validación URL **"
echo "** 5- Validación mixta **"
echo "****************************"
read -n1 -p "ingrese una opcion (1-5): " opcion
echo -e "\n"
case $opcion in
1)
read -p "Ingrese un número: " numero
if [[ $numero =~ $numeroRegex ]]; then
echo -e "\nEs un número valido ;)"
else
echo -e "\nNo es un número :("
fi
;;
2)
read -p "Ingrese una cadena: " cadena
if [[ $cadena =~ $cadenaRegex ]]; then
echo -e "\nEs una cadena válida ;)"
else
echo -e "\nTiene caracteres no permitidos :|"
fi
;;
3)
read -p "Ingrese un directorio/archivo: " archivo
if [ -d $archivo ]; then
echo -e "\nEs un directorio"
elif [ -e $archivo ]; then
echo -e "\nEs un archivo"
else
echo -e "\nNo existe"
fi
;;
[4-5]) echo -e "\nAún no implementado";;
*) echo -e "\nOpción no válida";;
esac
gracias
#!/bin/bash
# Porgrama que toma un valor y lo valida para luego usar condicionales
# Autor: YoJan
echo "***********************"
echo "Menú de opciones:"
echo "***********************"
echo "---------------------------------------------------------------------"
echo "1- Comparar si dos cadenas son iguales"
echo "2- Mayor entre dos números"
echo "3- Comparar si una cadena es menor que otra de acuerdo al orden ASCII"
echo "4- Comparar si dos números son distintos"
echo "5- Si un string es nulo, su longitud es cero"
echo "---------------------------------------------------------------------"
read -p "Ingrese la opción: " option
case $option in
1)
read -p "Ingrese la cadena 1: " cadena1
read -p "Ingrese la cadena 2: " cadena2
if [[ $cadena1 == $cadena2 ]]; then
echo "La cadena: $cadena1 y la cadena: $cadena2 son iguales"
else
echo "La cadena: $cadena1 y la cadena: $cadena2 no son iguales"
fi
;;
2)
read -p "Ingrese el número 1: " num1
read -p "Ingrese el número 2: " num2
if [[ $num1 -gt $num2 ]]; then
echo "El número: $num1 es mayor que $num2"
else
echo "El número: $num2 es mayor que $num1"
fi
;;
3)
read -p "Ingrese la cadena 1: " cadena1
read -p "Ingrese la cadena 2: " cadena2
if [[ $cadena1 > $cadena2 ]]; then
echo "La cadena: $cadena1 es mayor que la cadena: $cadena2"
else
echo "La cadena: $cadena2 es mayor que la cadena: $cadena1"
fi
;;
4)
read -p "Ingrese el número 1: " num1
read -p "Ingrese el número 2: " num2
if [[ $num1 -ne $num2 ]]; then
echo "Los números: $num1 y $num2 son diferentes"
else
echo "Los números: $num1 y $num2 son iguales"
fi
;;
5)
read -p "Ingrese una cadena: " cadena
if [[ -z $cadena ]]; then
echo "La cadena es null"
else
echo "La cadena no es null"
fi
;;
esac
#!/bin/bash
#Programa para el reto 3 del curso de Programación en Shell
echo "'''''''''''''''''"
echo "Menú de opciones"
echo "................."
echo "-----------------------------------------------------------"
echo "1. Comparar dos números"
echo "2. Comparar la longitud de dos cadenas"
echo "3. Consultar ubicación actual en el sistema de directorios"
echo "4. Salir del programa"
echo "-----------------------------------------------------------"
echo -e "\n"
option=""
read -p "Ingrese la opción correspondiente a la operación a ejecutar:" option
case $option in
1) numA=0
numB=0
read -p "Ingrese el primer número:" numA
read -p "Ingrese el segundo número:" numB
if [ $numA -gt $numb ]; then
echo "El primer número es mayor que el segundo"
elif [ $numA -lt $numB ]; then
echo "El primer número es menor que el segundo"
else
echo "Los números son iguales"
fi
;;
2) cadA=""
cadB=""
read -p "Escriba la primera cadena:" cadA
read -p "Escriba la segunda cadena:" cadB
if [ ${#cadA} -gt ${#cadB} ]; then
echo "La primera cadena es mas larga"
elif [ ${#cadA} -lt ${#cadB} ]; then
echo "La segunda cadena es mas larga"
else
echo "Las cadenas tienen la misma longitud"
fi
;;
3) ubicacion=`pwd`
echo "Su posición en el sistema de directorios es:" $ubicacion
;;
4) echo "Hasta la próxima!"
break
;;
esac
# !/bin/bash
# Programa para el reto 3 del curso de programación en shell
option=""
read -p "Ingrese la nota del examen: " option
echo "Validación opción ingresada"
echo "\n"
case $option in
1) echo "el estudiante reprobó la materia";;
2) echo "el estudiante reprobó la materia pero puede levantar el promedio";;
3) echo "aprobó";;
[4-5]) echo "el estudiante aprobó la materia, felicitaciones";;
esac
#!/bin/bash
opcion="“
opcionreg=”^[1-5]$"
read -n1 -p “ingrese una opcion del 1 al 5:” opcion
echo ""
if [[ $opcion =~ $opcionreg ]]; then
echo "A selecionado la opcion $opcion"
else
echo "no a selecionado una opcion valida"
fi
# !/bin/bash
# Programa para ejemplificar el uso de la sentencia case
opcion=""
echo "Reto 3"
read -n1 -p "Ingrese una opcion de 1-5: " opcion
echo -e "\n"
case $opcion in
1) echo -e "\nOperacion numero 1 seleccionada";; 2) echo "Operacion numero 2 seleccionada";; 3) echo "Operacion numero 3 seleccionada";; 4) echo "Operacion numero 4 seleccionada";; 5) echo "Operacion numero 5 seleccionada";; esac```
# !/bin/bash
# Challenge #3: Conditional expressions usage
option=0
echo "============ Comparator ============"
echo " Choose one of the following options"
echo "1. Compare two numbers."
echo "2. Add two numbers."
echo "3. Compare two strings."
echo "4. Check if path exists."
echo "5. WIP"
read -n1 -p "Type one option:" option
echo ""
case $option in
[1-2])
number1=0
number2=0
read -p "Number 1: " number1
read -p "Number 2: " number2
if [ $option = 1 ]; then
if [ $number1 -gt $number2 ]; then
echo "Number 1 is greater than Number 2"
elif [ $number1 -lt $number2 ]; then
echo "Number 2 is greater than Number 1"
else
echo "Both numbers are equals"
fi
else
echo "$number1 + $number2 = $(($number1 + $number2))"
fi
;;
3)
string1=""
string2=""
read -p "String 1: " string1
read -p "String 2: " string2
if [ $string1 = $string2 ]; then
echo "Both strings matches"
else
echo "Strings are different"
fi
;;
4)
pathToFile=""
read -p "Type the path to the file:" pathToFile
if [ -d "$pathToFile" ]; then
echo "The path exists"
else
echo "The path '$pathArchivo' could not be found"
fi
*) echo "Option not supported"
esac
<#!/bin/bash
#Script de resolución reto 3
# Solicitar que se ingrese un valor del 1 al 5. Según el valor ingresado valor a validarlo utilizando las condicionales e imprimir según el valor ingresado. Construir expresiones de valida
ción númericas, cadenas y archivos según la opción ingresada.
echo -e "
______ __ __ ______ __ __
/ \ / | _ / | / \ / | / |
/$$$$$$ |$$ | / \ $$ |/$$$$$$ | _$$ |_ ______ _______ _$$ |_
$$ |__$$ |$$ |/$ \$$ |$$ \__$$/ / $$ | / \ / |/ $$ |
$$ $$ |$$ /$$$ $$ |$$ \ $$$$$$/ /$$$$$$ |/$$$$$$$/ $$$$$$/
$$$$$$$$ |$$ $$/$$ $$ | $$$$$$ | $$ | __ $$ $$ |$$ \ $$ | __
$$ | $$ |$$$$/ $$$$ |/ \__$$ | $$ |/ |$$$$$$$$/ $$$$$$ | $$ |/ |
$$ | $$ |$$$/ $$$ |$$ $$/ $$ $$/ $$ |/ $$/ $$ $$/
$$/ $$/ $$/ $$/ $$$$$$/ $$$$/ $$$$$$$/ $$$$$$$/ $$$$/
"
echo "Selecione 1 de las siguientes temas de Sysops de AWS"
echo "1)Monitoring and Reporting"
echo "2) Storage and Data Management"
echo "3) Deplyment and Provisioning"
echo "4) Hihg Availability"
echo "5) Automation and Optimization"
echo -e ""
read -n1 -p "Escriba el numero del tema que prefiere (1-5)" option
echo -e""
case $option in
"1") read -p "cual es el servicio por excelencia de aws para monitorear recursos de AWS" rtamonitoring
if [ $rtamonitoring = "cloudwatch" ] || [ $rtamonitoring = "cw" ];then
echo "Respuesta correcta"
else
echo "Respuesta incorrecta $rtamonitoring "
fi;;
"2") echo "cual de las siguentes servicios de almacenamiento almacena objetos ilimitadamente ?"
read -p " A)EBS B)S3 C)EFS D)Glacier" rtastorage
read -n1 -p " Cual es la capacidad maxima de un objeto dentro del bucket en TB" rtastorage2
if [ $rtastorage = "B" ] || [ $rtastorage = "b" ];then
if [ $rtastorage2 = "5" ];then
echo -e "\n $rtastorage2 es la cantidad de TB maximo de un archivo y $rtastorage almacena objetos ilimitadamente "
else
echo -e "\n revise la 2da respuesta esta erronea"
fi
else
echo "Respuestas incorrectas $rtastorage y $rtastorage2 "
fi;;
"3") read -p "cual es el metodo de deployment que no genera downtime \n A)OpsWorks B) CodeDeploy C) blue/green D) All in once" rtadeployment
if [ $rtadeployment = "d" ] || [ $rtadeployment = "D" ];then
echo "Respuesta correcta"
else
echo "Respuesta incorrecta $rtadeployment "
fi;;
"4") read -p "cual es el servicio por excelencia de aws para Alta disponibilidad en AWS" rtaHA
if [ $rtaHA = "asg" ] || [ $rtaHA = "ASG" ];then
echo "Respuesta correcta"
else
echo "Respuesta incorrecta $rtaHA "
fi;;
"5") read -p "cual es el servicio por excelencia de aws para automatizacion y optimizacion de recursos de AWS" rtaAyO
if [ $rtaAyO = "cloudwatch" || $rtaAyO = "cw" ];then
echo "Respuesta correcta"
else
echo "Respuesta incorrecta $rtaAyO "
fi;;
"*") "Eliga un numero de 1 a 5"
esac
>
Mi código:
#!/bin/bash
#Programa para ingreso de opciones 1-5, validación de variable entera.
#Autor: Harvi Calle - @harvif
numeroRegex='^[1-5]{1}$'
echo -e "\n Opcion 1 imprime la hora exacta. \n Opcion 2 Imprime la fecha \n Opcion 3 Imprime el nombre del mes. \n Opcion 4 Imprime el día de la semana. \n Opcion 5 imprime el día del mes"
read -n1 -p "Selecciona una opción del 1 al 5: " numero
echo -e "\n"
#Validacion de Variables
#Identificacion
if [[ $numero =~ $numeroRegex ]]; then #Comparacion de captura de datos, VS expresion regular
case $numero in
1) echo "La hora exacta es $(date +%T)";;
2) echo "La fecha exacta es $(date +%F)";;
3) echo "El mes es $(date +%B)";;
4) echo "El día de la semana es $(date +%A)";;
5) echo "El día del mes es $(date +%d)";;
esac
else
echo "Opcion no válida."
fi
Mi aporte
$ cat Reto_3.sh
# !/bin/bash
#Reto 3 Solicitud de ingreso, valor de 1 a 5 segun la respuesta
#hacer algo usando nuestras condiciones aprendidas antes y tener un regex para losnumeros
RegexOption='^[1-5]$'
phoneRegex='^[0-9]{10}$'
echo "
/>
( //------------------------------------------------------(
(*)OXOXOXOXO(*> <<SrlmTexh>> \
( \\--------------------------------------------------------)
\>
"
read -n1 -p "Ingresa una opcion de [1 - 5]: " option
if [[ $option =~ $RegexOption ]]; then
case $option in
1) echo -e "\n Opcion Valida";;
[2-3]) echo -e "\n"
read -n1 -p "Ingresa un Numero [0-9]: " num1
echo -e "\n"
read -n1 -p " Ingresa un Numero mas [0-9]: " num2
if [ $option -eq 2 ]; then
echo -e "\n"
echo "Operacion Suma: $(($num1 + $num2))"
else
echo -e "\n"
echo "Operacion Resta: $(($num1 - $num2))"
fi;;
4) echo -e "\n"
read -n10 -p "Ingresa tu numero a 10 dig para validar: " phone
if [[ $phone =~ $phoneRegex ]]; then
echo -e "\n Numero Valido, Gracias! "
else
echo -e "\n Numero Invalido"
fi;;
5) echo -e "\n Hola";;
"*") "Opcion Invalida"
esac
else
echo -e "\n Opcion fuera de Rango"
fi
#!/bin/bash
# Reto 3: Validar opciones
# Autor: Mauro Brandan - [email protected]
option=0
numberOne=0
numberTwo=0
pais=""
archivo=""
nombre=""
echo "1 - Verificar numeros"
echo "2 - Verificar un pais"
echo "3 - Verificar existencia de un archivo"
echo "4 - Ingresar nombre"
echo "5 - Terminar proceso"
read -p "Ingrese una opcion: " option
case $option in
1)
read -p "Ingrese dos numeros: " numberOne numberTwo
if [ $numberOne -ge $numberTwo ]; then
echo "El numero mayor es $numberOne"
elif [ $numberOne -eq $numberTwo ]; then
echo "Los numeros son iguales"
else
echo "El numero mayor es $numberTwo"
fi;;
2)
read -p "Ingrese un pais correspondiente (ARG, MEX, COL): " pais
if [ $pais = "ARG" ]; then
echo "Eres argentino!"
elif [ $pais = "MEX" ]; then
echo "Eres mexicano!"
elif [ $pais = "COL" ]; then
echo "Eres colombiano!"
else
echo "Opcion incorrecta"
fi;;
3)
read -p "Ingrese la ubicacion del archivo: " archivo
if [ -d $archivo ]; then
echo "El archivo si existe"
else
echo "El archivo no existe"
fi;;
4)
read -p "Ingrese su nombre: " nombre
echo "Hola $nombre, bienvenido al sistema";;
5)
echo "Muy bien, proceso terminado";;
*)
echo "Opcion Incorrecta";;
esac
Mi aporte:
# !/bin/bash
# Programa para validar un número en un rango del 1 al 5
# Autor: Carlos Rodríguez
num=0
numRegex="^[0-9]+$"
read -p "Por favor ingrese un número: " num
echo -e "\n"
if [[ $num =~ $numRegex ]]; then
if [ $num -ge 1 ] && [ $num -le 5 ]; then
echo "Ha seleccionado el número correcto en el rango"
else
echo "El número no es correcto en el rango"
fi
else
echo "No es un número lo que ha introducido"
fi
Mi código
# !/bin/bash
# Reto 3: Solicitar que se ingrese un valor del 1 al 5. Según el valor ingresado, valor a
# validarlo utilizando las condicionales e imprimir según el valor ingresado. Construir
# expresiones de validación numéricas, cadenas y archivos, según la opción ingresada.
# Autor: Erick Jiménez - @erjimrio
opcion=0
num1=0
num2=0
edad=0
pais=""
rutaArchivo=""
# Limpiar la pantalla
clear
# Desplegar el menú de opciones
echo "-------------------------------------------------------------------------------------------"
echo " Reto 3 "
echo "-------------------------------------------------------------------------------------------"
echo " MENÚ PRINCIPAL "
echo "-------------------------------------------------------------------------------------------"
echo -e "\t 1. Comparar dos números"
echo -e "\t 2. Decir si un número es par o impar"
echo -e "\t 3. Expresiones condicionales con números"
echo -e "\t 4. Expresiones condicionales con cadenas"
echo -e "\t 5. Expresiones condicionales con archivos"
# Leer los datos del usuario - capturar información
read -n1 -p "Ingrese una opción [1-5]" opcion
# Validar la opción ingresada
case $opcion in
1)
echo -e "\nComparar dos números"
read -p "Ingrese un número: " num1
read -p "Ingrese otro número: " num2
# Comparamos números
if [ $num1 -eq $num2 ]; then # num1 = num2
echo -e "\n$num1 = $num2"
elif [ $num1 -gt $num2 ]; then # num1 > num 2
echo -e "\n$num1 > $num2"
else # num1 < num2
echo -e "\n$num1 < $num2"
fi
;;
2)
echo -e "\nDecir si un número es par o impar"
read -p "Ingrese un número entero: " num1
if [ $(($num1%2)) -eq 0 ]; then
echo -e "\n$num1 es un número par"
else
echo -e "\n$num1 es un número impar"
fi
;;
3)
echo -e "\nExpresiones condicionales con números"
read -n2 -p "Ingrese su edad: " edad
if [ $edad -gt 0]; then
if [ $edad -ge 18 ]; then
echo -e "\nUsted es mayor de edad"
else
echo -e "\nUsted es menor de edad"
fi
else
echo -e "\nInformación errónea"
fi
;;
4)
echo -e "\nExpresiones condicionales con cadenas"
read -p "Ingrese su país [MEX, COL, ARG, ECU, OTRO]: " pais
if [ $pais = "MEX" ]; then
echo -e "\nUsted es mexicano"
elif [ $pais = "COL" ]; then
echo -e "\nUsted es colombiano"
elif [ $pais = "ARG" ]; then
echo -e "\nUsted es argentino"
elif [ $pais = "ECU" ]; then
echo -e "\nUsted es ecuatoriano"
elif [ $pais = "OTRO" ]; then
echo -e "\nUsted es de un país que no está en la lista"
else
echo -e "\nValor no válido"
fi
;;
5)
echo -e "\nExpresiones condicionales con archivos"
read -p "Ingrese el path de su archivo: " rutaArchivo
if [ -d $rutaArchivo ]; then
echo -e "\nEl directorio $rutaArchivo EXISTE"
else
echo -e "\nEl directorio $rutaArchivo NO EXISTE"
fi
;;
*)
echo -e "\nElección no válida"
;;
esac
#!/bin/bash
#Ingresar un valor de 1 al 5 y validarlo utilizando las condicionales e imprimir el valor ingresado. Construir expresiones de validacion numericas, cadenas y archivos segun la opcion ingresada
valor=0
valor2=0
numero=0
sumA=0
sumB=0
pathdir=""
fechahoy=""
hoy=`date +%Y-%m-%d`
parregex='^0|2|4|6|8{1}$'
imparregex='^1|3|5|7|9{1}$'
textregex='^[A-Z]'
text=""
echo "Operaciones a realizar:"
echo "1)Realizar la suma de A+B"
echo "2)Verificar si existe un directorio"
echo "3)Que fecha es hoy YYYYMMDD"
echo "4)Ingresar un numero del 0 al 9 e imprimir si es par o impar"
echo "5)Elegir el tipo de compresion para la carpeta shellCourse"
echo -e "\n"
read -n1 -p "Ingrese numero de operacion: " valor
echo -e "\n"
case $valor in
1)
echo "Ingrese numero a sumar"
read -n1 -p "Numero A: " sumA
echo -e "\n"
read -n1 -p "Numero B: " sumB
echo -e "\n"
echo "La suma es: " $((sumA + sumB))
;;
2)
read -p "Ingrese directorio a verificar: " pathdir
if [ -d $pathdir ]; then
echo "El directorio $pathdir si existe"
else
read -p "El directorio $pathdir no existe, desea crearlo S/N: " pathcrear
if [ $pathcrear = "S" ] || [ $pathcrear = "s" ]; then
mkdir -p $pathdir
echo "Creado directorio $pathdir"
elif [ $pathcrear = "N" ] || [ $pathcrear = "n" ]; then
echo "Directorio no creado"
else
echo "opcion ingresada no valida"
fi
fi
;;
3)
read -p "La fecha de hoy es: " fechahoy
if [ $fechahoy = $hoy ]; then
echo "Fecha ingresada es correcto"
else
echo "Fecha ingresada no es hoy"
fi
;;
4)
read -n1 -p "Ingresar numero a verificar: " numero
echo -e "\n"
if [[ $numero =~ $parregex ]]; then
echo "$numero es parregex"
elif [[ $numero =~ $imparregex ]]; then
echo "$numero es imparregex"
else
echo "numero incorrecto"
fi
echo "FIN"
;;
5)
read -n1 -p "Ingrese tipo de compresion zip(Z), tar(T): " valor2
case $valor2 in
"Z")
echo "Comprimir usando Zip"
zip shellCourse.zip $HOME/shellCourse
ls -ld shellCourse.zip
;;
"T")
echo "Comprimir usar Tar gz"
tar -czf shellCourse.tar.gz $HOME/shellCourse/
ls -ld shellCourse.tar.gz
;;
*)
echo "Opcion no valida"
;;
esac
;;
*)
echo "Opcion no valida"
;;
esac
```
Mi codigo de este reto:
# !/etc/bash
# reto 3: solicitar que se ingrese un valor del 1 al 5. Segun el valor ingresado valor a utilizarlo utilizando condicionales e imprimir segun el valor ingresado. Construir expresiones de validacion numerica, cadena, archivo segun la opcion ingresada.
# variables
opcion=0
nombre=""
apellidos=""
edad=0
direccion=""
telefono=0
email=""
# expresiones regulares
nombreRegex='^[A-Z]+$'
apellidosRegex='^([A-Za-zÃ{0}?[A-Za-zÃ]+[\s])+([A-Za-zÃ{0}?[A-Za-zÃ])+[\s]?([A-Za-zÃ{0}?[A-Za-zÃ])?$'
edadRegex='^[0-9]{2}$'
telefonoRegex='^[0-9]{10}$'
emailRegex='^[a-z0-9_-]+(?:.[a-z0-9_-]+)*@[a-z0-9_-]+(?:.[a-z0-9_-]+)*.[a-z]{2,6}$'
echo "Seleccione una opcion de la lista:"
echo " 1) Datos Personales"
echo " 2) Datos Contacto"
echo " 3) Salir"
read opcion
echo "Opcion seleccionada: $opcion"
case $opcion in
1)
echo "Datos Personales"
echo -e "\n"
echo -n "Ingrese su nombre:"
read nombre
echo -n "Ingrese sus apellidos:"
read apellidos
echo -n "Ingrese su edad:"
read edad
echo -n "Ingrese su direccion:"
read direccion
echo -e "\n"
echo "Validando Datos Ingresados"
if [[ $nombre =~ $nombreRegex ]]; then
echo "Nombre: $nombre valido"
else
echo "Nombre: $nombre invalido"
fi
if [[ $apellidos =~ $apellidosRegex ]]; then
echo "Apellidos: $apellidos valido"
else
echo "Apellidos: $apellidos invalido"
fi
if [[ $edad =~ $edadRegex ]]; then
echo "Edad: $edad valido"
else
echo "Edad: $Edad invalido"
fi
echo "Direccion: $direccion";;
2)
echo "Datos de Contacto"
echo -e "\n"
echo -n "Ingrese su telefono:"
read telefono
echo -n "Ingrese su email:"
read email
echo "Validando Datos Ingresados"
if [[ $telefono =~ $telefonoRegex ]]; then
echo "Telefono: $telefono valido"
else
echo "Telefono: $Telefono invalido"
fi
if [[ $email =~ $emailRegex ]]; then
echo "Email: $email valido"
else
echo "Email: $email invalido"
fi;;
3)
echo "Bye!"
exit;;
*)
echo "Opcion no permida"
exit;;
esac
#!/bin/bash
# Solucion - Reto 3
# Author: molly
option=0
read -n1 -p "Option: " option
if [[ $option =~ [1-5] ]]; then
echo -e "\nThe option -$option is correct"
else
echo -e "\nThe option -$option is incorrect"
fi
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.