Francisco Ignacio Regular Contreras
Fredy Mendoza Vargas
Gracias
Macarena Sepúlveda
Gracias!
Francisco Ignacio Regular Contreras
Fredy Mendoza Vargas
Gracias
Macarena Sepúlveda
Gracias!
Esteban Martini
Luis Cáceres
#!/bin/bash read -p “Nombre:” nombre read -p “Apellido:” apellido read -p “Edad:” edad read -p “Direccion:” direccion read -p “Telefono:” telefono
echo “sus datos son:” $nombre, $apellido, $edad, $direccion, $telefono
Sebastian CA
Armando Cardenas
Pro Tip: para debuggear tu script en vim sin terminar el proceso ni cerrar el script que estas escribiendo puedes presionar ESC + [ctrl + z] y te sacará del vim, Para regresar solo escribe [fg] y volverás al VIM con el script actual para seguir realizando modificaciones.
Javier Eduardo Morón Mendoza
# !/bin/bash # Solicitar la información como nombres, apellidos, edad, dirección y teléfono, luego imprimir nombre="" apellido="" edad="" direccion="" telefono="" read -p "Ingrese su nombre: " nombre read -p "Ingrese su apellido: " apellido read -p "Ingrese su edad: " edad read -p "Ingrese su dirección: " direccion read -p "Ingrese su teléfono: " telefono echo "Su nombre es: $nombre" echo "Su apellido es: $apellido" echo "Su edad es: $edad" echo "Su direccion es: $direccion" echo "Su telefono es: $telefono"
Fernando Velasco
Denisse Godoy
Es necesario inicializar las variables para obtener input? Cuál es la mejor práctica al respecto?
Andres Prieto
¿Existen un "prettier" para bash? O en su defecto un plugin para vim
Mauricio Combariza
Andrés, todo el script se puede desarrollar en vs-code que para mi es mucho más amigable que vim
Andres Prieto
Gracias Mauricio, pero yo trabajo con Nvim, un fork de Vim, es decir; ese es el editor que me gusta usar y el que tengo como editor principal; trabajo sobre mi terminal y es la forma que más me gusta de desarrollar, pues en realidad Vim y Nvim es muy fácil de modificar; mira este repositorio que es mi Nvim, gracias por tu comentario
Samuel Ceballos Cuervo
#!/bin/bash read -p "Ingrese su nombre: " nombre echo "" read -p "Ingrese su/s apellido/s: " apellidos echo "" read -p "Ingrese su edad: " edad echo "" read -p "Ingrese su direccion: " direccion echo "" read -p "Ingrese su numero de telefono: " numeroTel echo "" echo "Nombre: $nombre, apellidos: $apellidos, edad: $edad, direccion: $direccion, tel: $numeroTel"
Javier Guevara
Marco
me gusto su programa
Marco
aun que en la ultima parte el programa se puso en modo acosador ajaja
John Florez
Done!
Cristian Blandon
¡Hola! Comparto mi desarrollo del reto.
Sólo para practicar lo aprendido de opciones, implementé 2 modificadores, -n que pide nombre y edad, -a que pide apellido y dirección, y en cualquier caso, al final, se pide el teléfono.
#!/usr/bin/bash # Script de practica para captura de informacion e implementacion de opciones echo -e "Informacion del paciente\n" while [ -n "$1" ]; do case "$1" in -n) read -p "Ingrese su nombre: " nombre read -p "Ingrese su edad: " edad echo "Hola $nombre de $edad años";; -a) read -p "Ingrese su apellido: " apellido read -p "Ingrese su direccion: " direccion echo "Tu apellido es $apellido y vives en $direccion";; --) shift break ;; *) echo "El modificador ingresado es invalido." exit 0;; esac shift done read -s -p "Ingresa tu telefono: " telefono echo "Tu telefono es $telefono"
Les dejo screenshots de los resultados :)
Jose Suarez
Así quedó mi reto:
#! /bin/bash #Reto 2 validar informacion #Autor Jose Suarez
idRegex='^([1-9]{1})([0-9]{3,7})$' nombreRegex='^([A-Z]{1})([a-z])$' apellidoRegex='^([A-Z]{1})([a-z])$' edadRegex='^([0-9]{1,2})$' paisRegex='^ARG|BRA|BOL|COL|CHI|ECU|PAR|PER|URU|VEN$' direccionRegex='^([A-Z]{1})([a-z]\s)([0-9])$' telefonoRegex='^([0-9]{8,12})$'
#Ingresar Identificacion read -p "Ingrese su numero de identificacion (Entre 4 y 8 digitos):" id while [[ ! $id =~ $idRegex ]] do echo -e "La identificacion ingresada no es valida" read -p "Ingrese su numero de identificacion (Entre 4 y 8 digitos):" id done
#Ingresar el apellido read -p "Ingrese su Apellido (Primera Letra Mayuscula):" apellido while [[ ! $apellido =~ $apellidoRegex ]] do echo -e "Apellido no valido" read -p "Ingrese su Apellido (Primera Letra Mayuscula):" apellido done
#Ingresar el nombre read -p "Ingrese su Nombre (Primera Letra Mayuscula):" nombre while [[ ! $nombre =~ $nombreRegex ]] do echo -e "Nombre no valido" read -p "Ingrese su Nombre (Primera Letra Mayuscula):" nombre done
#Ingresar la edad read -p "Ingrese su edad:" edad while [[ ! $edad =~ $edadRegex ]] do echo -e "La edad no es valida" read -p "Ingrese su edad:" edad done
#Ingresar el numero de telefono read -p "Ingrese su Numero de Telefono (Debe contener entre 8 y 12 numeros):" telefono while [[ ! $telefono =~ $telefonoRegex ]] do echo -e "El telefono ingresado no es valido" read -p "Ingrese un numero de telefono valido (Debe contener entre 8 y 12 numeros):" telefono done
#Ingresar Pais read -p "Ingrese su pais de residencia (ARG|BRA|BOL|COL|CHI|ECU|PAR|PER|URU|VEN):" pais while [[ ! $pais =~ $paisRegex ]] do echo -e "El pais ingresado no es valido" read -p "Ingrese su pais de residencia (ARG|BRA|BOL|COL|CHI|ECU|PAR|PER|URU|VEN):" pais done
#Ingresar la direccion read -p "Ingrese su Direccion (Ej: Calle 11):" direccion while [[ ! $direccion =~ $direccionRegex ]] do echo -e "La direccion ingresada no es valida" read -p "Ingrese su direccion (Ej: Calle 11):" direccion done
#Imprimir datos echo -e "\n" echo -e "**************************************" echo -e "++++++++Datos Ingresados++++++++++" echo -e "\n" echo -e "Numero de Identificacion:" $id echo -e "Apellido: $apellido" echo -e "Nombre: $nombre" echo -e "Edad: $edad" echo -e "Telefono: $telefono" echo -e "Direccion: $direccion, $pais" echo -e "\n"
Salida
Josue Armando Martinez Gonzalez
# ! /bin/bash # Solución del reto numero 2: Solicitar la información de cada uno de ustedes como nombres, apellidos, edad, dirección y números telefónicos; y posterior imprima toda la información. nombre="" apellido="" edad=0 direccion="" telefono=0 echo "Otorgame tu información por favor" read -n10 -p "Ingrese un nombre:" nombre echo -e "" read -n15 -p "Ingrese su apellido:" apellido echo -e "" read -n2 -p "Ingrese su edad:" edad echo -e "" read -n25 -p "Ingrese una dirección:" direccion echo -e "" read -n10 -p "Ingrese un numero de telefono:" telefono echo -e "" echo "Bienvenido $nombre $apellido, tienes $edad años de edad, vives en $direccion y te podemos contactar al numero telefonico $telefono" Resultado: Otorgame tu información por favor Ingrese un nombre:usuario Ingrese su apellido:toscano Ingrese su edad:25 Ingrese una dirección:residencia * calle *cr**a Ingrese un numero de telefono:1234567890 Bienvenido usuario toscano, tienes 25 años de edad, vives en residencia * calle *cr**a y te podemos contactar al numero telefonico 1234567890
Adan Natanael Segura Galicia
Me costó pero lo logre.
# !bin/bash #Programa qu valida informacion personal #Autor: Adan Galicia nombreRegex='^[A-Z]\w{2,15}[ A-Za-z]*$' apellidosRegex='^[A-Z]\w{2,15}[ A-Za-z]*$' edadRegex='^[0-9]{1,3}$' direccionRegex='^A-Z{2,65}$' numeroRegex='^([0-9]\-?){9}[0-9]$' read -p "Favor de ingresar su Nombre(s): " nombre read -p "Favor de ingresar su Apellido(s): " apellido read -p "Favor de ingresar su edad: " edad read -p "Favor de ingresar su direccion: " direccion read -p "Favor de ingresar su numero telefonico: " numero if [[ $nombre =~ $nombreRegex ]]; then echo -e "\n Su nombre(s) es: $nombre" else echo -e "\n Ese nombre(s) no es valido" fi if [[ $apellido =~ $apellidosRegex ]]; then echo -e "\n Su apellido(s) es: $apellido" else echo -e "\n Ese apellido(s) no es valido" fi if [[ $edad =~ $edadRegex ]]; then echo -e "\n Su edad es: $edad" else echo -e "\n Esa edad no es valida" fi if [[ $direccion =~ $direccionRegex ]]; then echo -e "\n Su direccion es: $direccion" else echo -e "\n Esa direccion no es valida" fi if [[ $numero =~ $numeroRegex ]]; then echo -e "\n Su numero telefonico es: $numero" else echo -e "\n Ese numero telefonico no es valido" fi
John Burgos
#!/bin/bash #Solicitar la información de cada uno de ustedes como nombres, apellidos, edad, dirección y números telefónicos; #posterior imprima toda la información. #by: devp echo -e "\n" echo "*** BIENVENIDOS AL PROGRAMA ***" echo -e "\n" #Datos echo "*** SOLICITANDO DATOS ***" read -p "Nombre: " nombre read -p "Apellido: " apellido read -p "Edad: " edad read -p "Direccion: " direccion read -p "Teléfono: " telefono echo "*** IMPRIMIENDO DATOS ***" echo "Nombre: " $nombre echo "Apellido: " $apellido echo "Edad: " $edad echo "Direccion: " $direccion echo "Telefono: " $telefono
Esteban Martini
aca la ejecucion:
bash-5.0# ./11_reto2.sh Ingrese su apellido:Minamino Ingrese su nombre:Suichi Ingrese su edad:67 aprendiendo a programar a su edad! Felicidades! Ingrese su Telefono:0303456 el telefono no es valido Ingrese su telefono (po favo):0303456789 Ingrese su Direccion:Evergreen Av. 742 ################ Datos Personales: ################ Apellido: Minamino Nombre: Suichi Edad: 67 Telefono: 0303456789 Direccion: Evergreen Av. 742 bash-5.0#
Abner Alejandro Nicolás Recinos
./reto_02.sh Ingrese los siguientes datos: Nombres: Abner Apellidos: Recinos Edad: 30 Dirección: America No. Teléfono: 555-000-999
Procesando ...
Apellidos: Recinos Nombre: Abner edad: 30 Dirección America No. Teléfono: 555-000-999
El reto resuelto:
#!/bin/bash regexedad='^([1-9]{1,2})$' regexnombre='^([A-z]{2,})$' regexapellido='^([A-z]{2,})$' regexdireccion='^([A-Z]*)' regexnumero='^[0-9]{10})$' read -p "Ingrese su nombre: " nombre read -p "Ingrese su Apellido: " apellido read -p "Ingrese su edad: " edad read -p "ingrese su dirección: " direccion read -p "ingrese su numero de telefono: " telefono if [[ $edad =~ $regexedad ]]; then echo "edad valida" else echo "edad invalida" fi if [[ $nombre =~ $regexnombre ]]; then echo "nombre valido" else echo "nombre invalido" fi if [[ $apellido =~ $regexapellido ]]; then echo "apellido valido" else echo "apellido invalido" fi if [[ $direccion =~ $regexdireccion ]]; then echo "Dirección valida" else echo "Dirección invalida" fi if [[ $telefono =~ $regextelefono ]]; then echo "telefono valido" else echo "telefono invalido" fi echo "los datos" echo $nombre echo $apellido echo $edad echo $direccion echo $telefono
comparto el codigo! me "inspire" en algunos comentarios :D
#! /bin/bash # RETO 2: programa de ingreso de datos personales, validacion e impresion nombreRegEx='^([A-Z??????a-z??????]{1,}\s?){1,2}$' apellidoRegEx='^[A-Z??????a-z??????]{1,}\s?[A-Z??????a-z??????]{1,}$' edadRegex='^[0-9][0-9]?[0-9]?$' direccionRegEx='^[A-Z??????a-z??????0-9.,# ]{1,}?$' telefonoRegEx='^([(0-9]{2,2}[-. ]?)([(0-9]{2,2}[-. ]?)([0-9]{2,2}[-. ]?)([0-9]{2,2}[-. ]?)([(0-9]{2,2}[-. ]?)$' oldAge=65 youngAge=8 # Solicitamos el Apellido read -p "Ingrese su apellido:" apellido while [[ ! $apellido =~ $apellidoRegEx ]] do echo -e "el Apellido no es valido" read -p "Ingrese el Apellido (po favo):" apellido done # Solicitamos el nombre read -p "Ingrese su nombre:" nombre while [[ ! $nombre =~ $nombreRegEx ]] do echo -e "el Nombre no es valido" read -p "Ingrese el Nombre (po favo):" nombre done # Solicitamos la edad read -p "Ingrese su edad:" edad while [[ ! $edad =~ $edadRegEx ]] do echo -e "la edad no es valida" read -p "Ingrese su edad (po favo):" edad done if [[ $edad -gt $oldAge ]]; then echo -e "aprendiendo a programar a su edad! Felicidades!" fi if [[ $edad -lt $youngAge ]]; then echo -e "Too young!" fi # Solicitamos el telefono read -p "Ingrese su Telefono:" telefono while [[ ! $telefono =~ $telefonoRegEx ]] do echo -e "el telefono no es valido" read -p "Ingrese su telefono (po favo):" telefono done # Solicitamos la direccion read -p "Ingrese su Direccion:" direccion while [[ ! $direccion =~ $direccionRegEx ]] do echo -e "la direccion no es valida" read -p "Ingrese su direccion (po favo):" direccion done echo -e "" echo -e "################" echo -e " Datos Personales:" echo -e "################" echo -e "Apellido: $apellido" echo -e "Nombre: $nombre" echo -e "Edad: $edad Telefono: $telefono" echo -e "Direccion: $direccion"
Codigo:
#!/bin/bash #asks user for name, surname, age, address, phone# #at the end prints all the information #NOTE: regex = regular expression #NOTE: [\n# $&:\s\t] this can be used for text msgs, ex: ayoo hello there! #regexs name_regex='^([A-Z]{1})([a-z]*)$' #in the state of California is legal to have a single letter as a first name surname_regex='^([A-Z]{1})([a-z]*)$' age_regex='^([1-9][1-9])$' address_regex='^([A-Z]{1})([a-z]*\s)([A-Z]{2}\s)([0-9]*)$' phone_regex='^([0-9]{10})$' #~functions~ function invalid_syntax { echo "Invalid syntax..." echo "Please try again and double check if you miss spelled something" echo "" } while [[ ! $u_name =~ $name_regex ]]; do read -p "Name: " u_name if [[ $u_name =~ $name_regex ]]; then break else invalid_syntax fi done while [[ ! $u_surname =~ $surname_regex ]]; do read -p "Surname: " u_surname if [[ $u_surname =~ $surname_regex ]]; then break else invalid_syntax fi done while [[ ! $u_age =~ $age_regex ]]; do read -p "Age: " u_age if [[ $u_age =~ $age_regex ]]; then break else invalid_syntax fi done while [[ ! $u_phone =~ $phone_regex ]]; do read -p "Phone number: " u_phone if [[ $u_phone =~ $phone_regex ]]; then break else invalid_syntax fi done echo "" while [[ ! $u_address =~ $name_regex ]]; do echo "format: Town + State abreviation + ZIP code" read -p "Address: " u_address if [[ $u_address =~ $address_regex ]]; then break else invalid_syntax fi done read -p "Are you sure about the info above? [y/n]: " u_answer if [ $u_answer == "y" ]; then echo "okay, printing results..." sleep 1s echo "" elif [ $u_answer == "n" ]; then echo "okay, re-sending registration form..." sleep 1s clear bash b32.sh else echo "You typed: $u_answer" echo -e "Sorry, but you can only type:\n'n' = no\n'y' = yes" echo "" fi #asks user for name, surname, age, address, phone# echo "------RESULTS-----" echo "" echo "Name: $u_name" echo "Surname: $u_surname" echo "Age: $u_age" echo "Address: $u_address" echo "Phone number: $u_phone"
Output:
Name: Christopher Surname: Michaels Age: 18 Phone number: 3163256521 format: Town + State abreviation + ZIP code Address: Baviar CA 032124 Are you sure about the info above? [y/n]: y okay, printing results... ------RESULTS----- Name: Christopher Surname: Michaels Age: 18 Address: Baviar CA 032124 Phone number: 3163256521
El mio, sin usar funciones:
# !/bin/bash # Reto 2 - Solicitar informacion e imprimirla | adding controls # R = Regex # Autor: Erick Velasco ## Declaracion de variables nombres=""; wordsR='^[A-Z a-z]{2,35}$' apellidos=""; edad=0; edadR='^(1[5-9])|([2-9][0-9])$' direccion=""; direccionR='^[A-Za-z \.]{2,30}(N|No|Nro|#)[ ]?[0-9]{1,5}$' telefono=0; telefonoR='^[0-9]{4,10}$' flag=0 ## Validar la informacion while [[ $flag -eq 0 ]]; do read -p $'Ingrese sus nombres:\n' nombres if [[ $nombres =~ $wordsR ]]; then flag=1 else echo "Nombre Invalido." fi done flag=0 while [[ $flag -eq 0 ]]; do read -p $'Ingrese sus apellidos:\n' apellidos if [[ $apellidos =~ $wordsR ]]; then flag=1 else echo "Apellido/s Invalido/s." fi done flag=0 while [[ $flag -eq 0 ]]; do read -p $'Ingrese su edad:\n' edad if [[ $edad =~ $edadR ]]; then flag=1 else echo "Edad no valida." fi done flag=0 while [[ $flag -eq 0 ]]; do read -p $'Ingrese su direccion:\n' direccion if [[ $direccion =~ $direccionR ]]; then flag=1 else echo "Direccion Invalida." fi done flag=0 while [[ $flag -eq 0 ]]; do read -p $'Ingrese su numero telefonico:\n' telefono if [[ $telefono =~ $telefonoR ]]; then flag=1 else echo "Telefono no valido" fi done ## Mostrar los datos echo -e "Nombres:\t$nombres" echo -e "Apellidos:\t$apellidos" echo -e "Edad:\t\t$edad" echo -e "Direccion:\t$direccion" echo -e "Telefono:\t$telefono" exit 0