Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Reto 2

17/43

Lectura

Reto 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.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 155

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

Mi código, humilde, pero cumple con el Reto:

#!/usr/bin/env bash
# Gets personal info and then print it
# Carlos Velasquez - @crlosvelaquez

name=""
lastname=""
age=""
address=""
cellphone=""

echo "Type your data:"
read -p "What is your name? " name
read -p "What is your lastname? " lastname
read -p "How old are you? " age
read -p "Where do you live? " address
read -p "What is your cellphone? " cellphone

echo -e "\n"
echo "Your data: "
echo "Her/His name is $name $lastname"
echo "She/He is $age"
echo "She/He lives in $address"
echo "Her/His cellphone is $cellphone"

comparto el codigo! me “inspire” en algunos comentarios 😄

#! /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"

#!/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

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

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.

# !/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"

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
```txt #!/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" ```

Done!

¡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 😃





¡Saludos!

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

# ! /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

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](\w\.?\-?#? ?){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
#!/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

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# 

./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

No es mucho pero es trabajo honesto: ``` \#!/bin/bash \# Reto 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. read -p "Ingresa tu nombre: " nombre read -p "Ingresa tu apellido: " apellido read -p "Ingresa tu edad: " edad read -p "Ingresa tu dirección: " direccion read -p "Ingresa tu número de teléfono: " telefono echo "$nombre, $apellido, $edad, $direccion, $telefono" ```
reto cumplido \#!/bin/bash \# Crear un arreglo para almacenar la información de cada persona declare -a personas \# Solicitar el número de personas a registrar read -p "¿Cuántas personas deseas registrar? " num\_personas \# Recopilar la información para cada persona for ((i=1; i<=num\_personas; i++)); do echo "Persona $i" read -p "Nombre: " nombre read -p "Apellido: " apellido read -p "Edad: " edad read -p "Dirección: " direccion read -p "Número de Teléfono: " telefono \# Almacenar la información de la persona en una cadena de texto y agregarla al arreglo personas+=("Nombre: $nombre, Apellido: $apellido, Edad: $edad, Dirección: $direccion, Teléfono: $telefono") echo done \# Imprimir toda la información almacenada echo "Información de todas las personas registradas:" for persona in "${personas\[@]}"; do echo "$persona" echo "----------------------------" done
Algo simple pero funcional :) ![](https://static.platzi.com/media/user_upload/image-2b51eb1b-caef-44e1-be23-d1b7d55ea1f7.jpg)```txt #!/bin/bash #PROGRAMA VALIDACION DE INFORMACION PERSONAL #Autor: Emanuel Ferrero #REGEX nombRegex='^[A-Za-z]{1,15}$' apellidoRegex='^[A-Za-z]{1,15}$' edadRegex='^[0-9]{1,2}$' teleRegex='^[0-9]{10}$' paisRegex='^[A-Za-z]{1,25}$' #INFORMACION PERSONAL echo "INOFRMACION DE LA PERSONA" read -p "Ingresa tu nombre y apellido:" nombre apellido read -p "Ingresa tu edad:" edad read -p "Ingresa tu numero de telefono:" telefono read -p "Ingresa tu pais de residencia:" pais #VALIDACIONES if [[ $nombre =~ $nombRegex ]]; then echo "Nombre $nombre valido" else echo "Nombre $nombre invalido" fi if [[ $apellido =~ $apellidoRegex ]]; then echo "Apellido $apellido valido" else echo "Apellido $apellido invalido" fi if [[ $edad =~ $edadRegex ]]; then echo "Edad $edad valida" else echo "edad $edad invalida" fi ```
Aqui comento mi respuesta, es una solucion dinamica donde verifico los datos que ingresa y si cumplen con el patron son almacenados en un arreglo temporal que despues es guardado en una matris, y despues se imprimen todos sus estudiantes. ![](https://static.platzi.com/media/user_upload/image-02eec792-b7b0-426e-b450-3eca027f0f47.jpg) ![](https://static.platzi.com/media/user_upload/image-ecbec17e-eaea-4d6c-9f69-94bbdf03e384.jpg) ![](https://static.platzi.com/media/user_upload/image-41c033db-9658-4da1-8b90-5684af1f5b18.jpg)
```js # ! /bin/bash # Programa para ejemplific a ejercicio de clase n# 17 de Platzi - Programacion en Shell # Autor> Francisco Fuentes - identificacionRegex='^([A-Z]{1}[0-9]{8})$' nombreRegex='^([a-zA-Z]{2,})$' apellidoRegex='^([a-zA-Z]{2,})$' edadRegex='^([1-9]{1,2})$' paisRegex='VE|COL|US$' direccionRegex='^([a-zA-Z]*)$' numeroRegex='^([0-9]{11})$' fechaNacimientoRegex='^(19|20)[0-9]{2}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[01])$' echo "Expresiones regulares" read -p "Ingresar una identifcacion:" identificacion read -p "Ingresar nombre:" nombre read -p "Ingresar apellido:" apellido read -p "Ingresar edad:" edad read -p "Ingresar las iniciales de un pais [VE,COL,US]:" pais read -p "Ingresar direccion:" direccion read -sp "ingresar numero:" numero read -p "Ingresar la fecha de nacimiento [yyyyMMdd]:" fechaNacimiento #Validacion de Identificacion if [[ $identificacion =~ $identificacionRegex ]]; then echo "Identificacion $identificacion valida" else echo "Identificacion $identificacion invalida" fi #Validacion de Nombre. if [[ $nombre =~ $nombreRegex ]]; then echo "Nombre $nombre valido" else echo "Nombre $nombre invalido" fi #Validacion de Apellido. if [[ $apellido =~ $apellidoRegex ]]; then echo "Apellido $apellido valido" else echo "Apellido $apellido invalido" fi #Validacion de Edad. if [[ $edad =~ $edadRegex ]]; then echo "Edad $edad valida" else echo "Edad $edad invalida" fi #Validacion de Pais. if [[ $pais =~ $paisRegex ]]; then echo "Pais $pais valida" else echo "Pais $pais invalido" fi #Validacion de Direccion. if [[ $direccion =~ $direccionRegex ]]; then echo "Direccion $direccion valida" else echo "Direccion $direccion invalida" fi #Validacion de Numero if [[ $numero =~ $numeroRegex ]]; then echo "Numero $numero valido" else echo "Numero $numero invalida" fi #Validacion Fecha de Nacimiento if [[ $fechaNacimiento =~ $fechaNacimientoRegex ]]; then echo "Fecha Nacimiento $fechaNacimiento valida" else echo "Fecha Nacimiento $fechaNacimiento invalida" fi ```# ! /bin/bash \# Programa para ejemplific a ejercicio de clase n# 17 de Platzi - Programacion en Shell \# Autor> Francisco Fuentes - identificacionRegex='^(\[A-Z]{1}\[0-9]{8})$' nombreRegex='^(\[a-zA-Z]{2,})$' apellidoRegex='^(\[a-zA-Z]{2,})$' edadRegex='^(\[1-9]{1,2})$' paisRegex='VE|COL|US$' direccionRegex='^(\[a-zA-Z]\*)$' numeroRegex='^(\[0-9]{11})$' fechaNacimientoRegex='^(19|20)\[0-9]{2}-(0\[1-9]|1\[0-2])-(0\[1-9]|\[1-2]\[0-9]|3\[01])$' echo "Expresiones regulares" read -p "Ingresar una identifcacion:" identificacion read -p "Ingresar nombre:" nombre read -p "Ingresar apellido:" apellido read -p "Ingresar edad:" edad read -p "Ingresar las iniciales de un pais \[VE,COL,US]:" pais read -p "Ingresar direccion:" direccion read -sp "ingresar numero:" numero read -p "Ingresar la fecha de nacimiento \[yyyyMMdd]:" fechaNacimiento \#Validacion de Identificacion if \[\[ $identificacion =~ $identificacionRegex ]]; then echo "Identificacion $identificacion valida" else echo "Identificacion $identificacion invalida" fi \#Validacion de Nombre. if \[\[ $nombre =~ $nombreRegex ]]; then echo "Nombre $nombre valido" else echo "Nombre $nombre invalido" fi \#Validacion de Apellido. if \[\[ $apellido =~ $apellidoRegex ]]; then echo "Apellido $apellido valido" else echo "Apellido $apellido invalido" fi \#Validacion de Edad. if \[\[ $edad =~ $edadRegex ]]; then echo "Edad $edad valida" else echo "Edad $edad invalida" fi \#Validacion de Pais. if \[\[ $pais =~ $paisRegex ]]; then echo "Pais $pais valida" else echo "Pais $pais invalido" fi \#Validacion de Direccion. if \[\[ $direccion =~ $direccionRegex ]]; then echo "Direccion $direccion valida" else echo "Direccion $direccion invalida" fi \#Validacion de Numero if \[\[ $numero =~ $numeroRegex ]]; then echo "Numero $numero valido" else echo "Numero $numero invalida" fi \#Validacion Fecha de Nacimiento if \[\[ $fechaNacimiento =~ $fechaNacimientoRegex ]]; then echo "Fecha Nacimiento $fechaNacimiento valida" else echo "Fecha Nacimiento $fechaNacimiento invalida" fi
Mi solución del reto ```js #!/bin/bash #Realizaremos el reto2 del curso de programación en Bash Shell #Autor Dilan Romero -@dilan78 #SOLICITAMOS AL USSARIO INFO BASICA nombres="" apellidos="" edad="" direccion="" celular="" #SOLICITUDA DE INRMACION DEL USUARIO echo "BIENVENIDOS" read -p "INGRESA SUS NOMBRES: " nombres read -p "INGRESA SUS APELLIDOS: " apellidos read -p "INGRESA SU EDAD: " edad read -p "INGRESA SU DIRRECION: " direccion read -p "INGRESA SU CELULAR: " celular echo "TU NOMBRE COMPLETO ES $nombres $apellidos TIENES $edad VIVES EN LA DIRRECION $dirrecion TU NUMERO DE CELULAR ES $celular" ```
```txt # !/bin/bash # Reto 2 # Autor: Mario Celis - https://www.linkedin.com/in/mario-alexander-vargas-celis/ nameRegex='^[A-Z][a-zA-Z]{2,15}$' lastnameRegex='^[A-Z][a-zA-Z]{2,15}$' ageRegex='^[0-9]{1,3}$' addressRegex='^[A-Za-z0-9\s]{5,25}$' number_phoneRegex='^[0-9\-\.\s]{7,15}$' # Lectura de los datos read -p "Ingrese su nombre: " name echo -e "\n" read -p "Ingrese su apellido: " lastname echo -e "\n" read -p "Ingrese su edad: " age echo -e "\n" read -p "Ingrese su dirección: " address echo -e "\n" read -p "Ingrese su teléfono: " number_phone echo -e "\n" # Validación del nombre if [[ $name =~ $nameRegex ]]; then echo -e "Su nombre es: $name" else echo -e "\nEse nombre no es válido" fi # Validación del apellido if [[ $lastname =~ $lastnameRegex ]]; then echo -e "Su apellido es: $lastname" else echo -e "\nEse apellido no es válido" fi # Validación de la edad if [[ $age =~ $ageRegex ]]; then echo -e "Su edad es: $age" else echo -e "\nLa edad ingresada no es válida" fi # Validación de la dirección if [[ $address =~ $addressRegex ]]; then echo -e "Su dirección es: $address" else echo -e "\nLa dirección ingresada no es válida" fi # Validación del teléfono if [[ $number_phone =~ $number_phoneRegex ]]; then echo -e "Su teléfono es: $number_phone" else echo -e "\nEl número de teléfono ingresado no es válido" fi # Resumen final echo "Hola, $name $lastname, tu edad es $age, la dirección es $address y el número telefónico es $number_phone." ```# !/bin/bash# Reto 2# Autor: Mario Celis - <https://www.linkedin.com/in/mario-alexander-vargas-celis/> nameRegex='^\[A-Z]\[a-zA-Z]{2,15}$'lastnameRegex='^\[A-Z]\[a-zA-Z]{2,15}$'ageRegex='^\[0-9]{1,3}$'addressRegex='^\[A-Za-z0-9\s]{5,25}$'number\_phoneRegex='^\[0-9\\-\\.\s]{7,15}$' \# Lectura de los datosread -p "Ingrese su nombre: " nameecho -e "\n"read -p "Ingrese su apellido: " lastnameecho -e "\n"read -p "Ingrese su edad: " ageecho -e "\n"read -p "Ingrese su dirección: " addressecho -e "\n"read -p "Ingrese su teléfono: " number\_phoneecho -e "\n" \# Validación del nombreif \[\[ $name =~ $nameRegex ]]; then    echo -e "Su nombre es: $name"else    echo -e "\nEse nombre no es válido"fi \# Validación del apellidoif \[\[ $lastname =~ $lastnameRegex ]]; then    echo -e "Su apellido es: $lastname"else    echo -e "\nEse apellido no es válido"fi \# Validación de la edadif \[\[ $age =~ $ageRegex ]]; then    echo -e "Su edad es: $age"else    echo -e "\nLa edad ingresada no es válida"fi \# Validación de la direcciónif \[\[ $address =~ $addressRegex ]]; then    echo -e "Su dirección es: $address"else    echo -e "\nLa dirección ingresada no es válida"fi \# Validación del teléfonoif \[\[ $number\_phone =~ $number\_phoneRegex ]]; then    echo -e "Su teléfono es: $number\_phone"else    echo -e "\nEl número de teléfono ingresado no es válido"fi \# Resumen finalecho "Hola, $name $lastname, tu edad es $age, la dirección es $address y el número telefónico es $number\_phone."
\# !/bin/bash \# Programa que solicita la informacion del usuario. \# Los datos solicitados son: Nombres, apellidos, edad, direccion, numero telefonico. \# Presentar la informacion solicitada \#Autor: Robert Ocampo R@0 edadRegex='^(\[1-9]{1,2})$' nombreRegex='^(\[A-z]\*)$' apellidoRegex='^(\[A-z]\*)$' direccionRegex='^(\[A-Z]\*)' numeroRegex='^\[0-9]{10})$' correoRegex='^(\[a-z]\*)' echo "Ingrese los datos que se solicitan: " echo -e"\n" 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 read -p "Ingrese su Correo electronico: " correo if \[\[ $edad =~ $edadRegex ]]; then echo "edad valida" else echo "edad invalida" fi if \[\[ $nombre =~ $nombreRegex ]]; then echo "nombre valido" else echo "nombre invalido" fi if \[\[ $apellido =~ $apellidoRegex ]]; then echo "apellido valido" else echo "apellido invalido" fi if \[\[ $direccion =~ $direccionRegex ]]; then echo "Dirección valida" else echo "Dirección invalida" fi if \[\[ $telefono =~ $telefonoRegex ]]; then echo "telefono valido" else echo "telefono invalido" fi if \[\[ $correo =~ $correoRegex ]]; then echo "correo valido" else echo "correo invalido" fi echo "Sus datos son: " echo -e"\n" echo "Nombres: " $nombre echo "Apellidos: " $apellido echo "Edad: " $edad echo "Direccion: " $direccion echo "Numero Telefonico: " $telefono echo "Correo-e: " $correo
\#!/bin/bash \# Solicitar entrada del usuario 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 número de teléfono: " telefono \# Imprimir los datos ingresados echo "Los datos ingresados son:" echo "Nombre: $nombre" echo "Apellido: $apellido" echo "Edad: $edad" echo "Dirección: $direccion" echo "Teléfono: $telefono"
\#!/bin/bash nombre="" apellidos="" edad="" direccion="" numero\_telefonico="" \# Solicitar información al usuario read -p "Ingrese su nombre: " nombre read -p "Ingrese su apellido: " apellidos read -p "Ingrese su edad: " edad read -p "Ingrese su direccion: " direccion read -p "Ingrese su numero telefonico: " numero\_telefonico \# Imprimir la información echo "Su nombre es: $nombre" echo "Su apellido es: $apellidos" echo "Su edad es: $edad" echo "Su direccion es: $direccion" echo "Su numero telefonico es: $numero\_telefonico"
Les dejo mi solución con validación de datos y con un contador de los datos que son validos: ```js 1 │ # !/bin/bash 2 │ # Reto 2: Script para solicitar la información del usuario, con validación de dato │ s como nombres, apellidos, edad, dirección y números telefónicos; y posterior impr │ ima toda la información. 3 │ # Autor: Matthew Farrell 4 │ 5 │ regexnombre='^([A-Z]{1})([a-z]*)$' 6 │ regexapellido='^([A-Z]{1})([a-z]*)$' 7 │ regexedad='^(1[5-9])|([2-9][0-9])$' 8 │ regexdireccion="" 9 │ regexcel='^[0-9]{4,10}$' 10 │ 11 │ echo "Formulario de Datos" 12 │ echo "Favor de agregar los siguientes datos: " 13 │ echo -e "\n" 14 │ read -p "Nombre: " nombre 15 │ read -p "Apellido: " apellido 16 │ read -p "Edad: " edad 17 │ read -p "Dirección: " direccion 18 │ read -p "Celular: " cel 19 │ 20 │ echo -e "\n" 21 │ echo "Validando datos..." 22 │ contador=0 23 │ 24 │ if [[ $nombre =~ $regexnombre ]]; then 25 │ echo "Nombre: valido" 26 │ contador=$((contador + 1)) 27 │ else 28 │ echo "Nombre... invalido" 29 │ fi 30 │ 31 │ if [[ $apellido =~ $regexapellido ]]; then 32 │ echo "Apellido: validos" 33 │ contador=$((contador + 1)) 34 │ else 35 │ echo "Apellido... invalidos" 36 │ fi 37 │ 38 │ if [[ $edad =~ $regexedad ]]; then 39 │ echo "Edad: valida" 40 │ contador=$((contador + 1)) 41 │ else 42 │ echo "Edad... invalida" 43 │ fi 44 │ 45 │ if [[ $direccion =~ $regexdireccion ]]; then 46 │ echo "Dirección: valida" 47 │ contador=$((contador + 1)) 48 │ else 49 │ echo "Dirección... invalida" 50 │ fi 51 │ 52 │ if [[ $cel =~ $regexcel ]]; then 53 │ echo "Celular: valido" 54 │ contador=$((contador + 1)) 55 │ else 56 │ echo "Celular... invalido" 57 │ fi 58 │ 59 │ if [[ $contador -eq 5 ]]; then 60 │ echo -e "\n¡Sus datos han sido validados exitosamente!" 61 │ else 62 │ echo -e "\nFavor de corregir los datos arriba indicados como invalidos" 63 │ fi ```
``` \# !/bin/bash \# Prueba 02 del curso de programacion en bash \# Author: Gerardo Soriano \<[email protected]> echo -e "Registro de un nuevo usuario:\n" read -p "Nombre(s):" nombre echo -e "\n" read -p "Apellido(s):" apellido echo -e "\n" read -p "Edad:" edad echo -e "\n" read -p "Direccion:" direccion echo -e "\n" read -p "Telefono:" telefono echo -e "\n" echo -e "Hola $nombre $apellido, tu edad es: $edad\n" echo -e "Contacto: $telefono\n" echo "$direccion" ```
```shell \# !/bin/bash \# Prueba 02 del curso de programacion en bash \# Author: Gerardo Soriano \<[email protected]> echo -e "Registro de un nuevo usuario:\n" read -p "Nombre(s):" nombre echo -e "\n" read -p "Apellido(s):" apellido echo -e "\n" read -p "Edad:" edad echo -e "\n" read -p "Direccion:" direccion echo -e "\n" read -p "Telefono:" telefono echo -e "\n" echo -e "Hola $nombre $apellido, tu edad es: $edad\n" echo -e "Contacto: $telefono\n" echo "$direccion" ```
```bash \# !/bin/bash \# Prueba 02 del curso de programacion en bash \# Author: Gerardo Soriano \<[email protected]> echo -e "Registro de un nuevo usuario:\n" read -p "Nombre(s):" nombre echo -e "\n" read -p "Apellido(s):" apellido echo -e "\n" read -p "Edad:" edad echo -e "\n" read -p "Direccion:" direccion echo -e "\n" read -p "Telefono:" telefono echo -e "\n" echo -e "Hola $nombre $apellido, tu edad es: $edad\n" echo -e "Contacto: $telefono\n" echo "$direccion" ```
```txt #!/bin/bash edadRegex="^([0-9]{1,2})$" nombreRegex="^([A-Z]{1}[a-z]{2,})$" apellidoRegex="^([A-Z]{1}[a-z]{2,})$" direccionRegex="^([A-Z]*)" celularRegex="^([0-9]{10})$" echo "Buenas tardes, le damos la bienvenida al sistema de registro de ingreso" echo "Por favor, ingrese la información solicitada de manera clara y acorde a los requerimiento" echo -e "\n" read -p "Ingrese su primer nombre con, únicamente, la primera letra en mayúscula " nombre while [[ ! $nombre =~ $nombreRegex ]] do echo "El nombre ingresado es invalido" read -p "Ingrese su primer nombre con, únicamente, la primera letra en mayúscula " nombre done read -p "Ingrese su primer apellido con, únicamente, la primera letra en mayúscula " apellido while [[ ! $apellido =~ $apellidoRegex ]] do echo "El apellido ingresado es invalido" read -p "Ingrese su primer apellido con, únicamente, la primera letra en mayúscula " apellido done read -p "Ingrese su numero de celular, únicamente en valores numéricos y con 10 numeros " celular while [[ ! $celular =~ $celularRegex ]] do echo "El numero de celular ingresado es invalido" read -p "Ingrese su numero de celular, únicamente en valores numéricos " celular done read -p "Ingrese su edad en años, únicamente en valor numérico " edad while [[ ! $edad =~ $edadRegex ]] do echo "La edad ingresada es invalida" read -p "Ingrese su edad en años, únicamente en valor numérico " edad done read -p "Ingrese su dirección " direccion while [[ ! $direccion =~ $direccionRegex ]] do echo "La dirección ingresada es invalida" read -p "Ingrese su dirección " direccion done mayor="" if [[ $edad -gt 18 ]]; then mayor="mayor de edad" else mayor="menor de edad" fi echo -e "\n" echo "----- DATOS PERSONALES -----" echo "Hola $nombre $apellido, ya que tienes $edad eres $mayor, con celular: $celular y dirección: $direccion" ```
Mi código: ![]()![](https://static.platzi.com/media/user_upload/reto2-e24ea96d-0513-4909-9ba7-954f96df39d6.jpg)
```bash \# !/bin/bash \# Programa que solicita informacion de nombre, apellido, edad, direccion, numero telefonico, e imprime toda la informacion regexNombre='^\[a-zA-Z]+(\\?:\s\[a-zA-Z]+)\*$' regexApellido='^\[a-zA-Z]+(\\?:\s\[a-zA-Z]+)\*$' regexEdad='^(\[1-9]|\[1-9]\[0-9])$' regexDireccion='^(\[A-Za-z]\*)' regexNumTelef='^09\[0-9]{8}$' read -p "Ingresar un nombre: " nombre read -p "Ingresar un apellido: " apellido read -p "Ingresar una edad: " edad read -p "Ingresar una direccion: " direccion read -p "Ingresar un telefono celular: " numTelef if \[\[ $nombre =~ $regexNombre ]]; then echo "Nombre: $nombre" else echo "Error. Nombre no valido" fi if \[\[ $apellido =~ $regexApellido ]]; then echo "Apellido: $apellido" else echo "Error. Apellido no valido" fi if \[\[ $edad =~ $regexEdad ]]; then echo "Edad: $edad" else echo "Error. Edad no valida" fi if \[\[ $direccion =~ $regexDireccion ]]; then echo "Direccion: $direccion" else echo "Error. Direccion no valido" fi if \[\[ $numTelef =~ $regexNumTelef ]]; then echo "Numero de Telefono: $numTelef" else echo "Error. Numero de Telefono no valido" fi ```
```js #! /bin/bash/ #Stenon # Programa para cumplir el reto read -p "Introduce tus nombres: " FIRST_NAMES read -p "Introduce tus apellidos: " LAST_NAMES read -p "Introduce tu edad: " AGE read -p "Introduce tu direccion: " ADDRESS read -p "Introduce tu numero telefonico: " PHONE # validar nombre if [[ $FIRST_NAMES =~ ^[a-z,A-Z[:space:]]+$ ]]; then echo "Tu nombre es: $FIRST_NAMES" else echo "Tu nombre no puede contener numeros" fi #validar apellido if [[ $LAST_NAMES =~ ^[a-z,A-Z[:space:]]+$ ]]; then echo "Tu apellido es: $LAST_NAMES" else echo "Tu apellido no puede contener numeros" fi # Validar Edad if [[ $AGE =~ ^[0-9]{1,3}+$ ]]; then echo "Tu edad es: $AGE" else echo "Tu edad no puede contener caracteres" fi #validar direccion if [[ $ADDRESS =~ ^[a-z,A-Z,0-9[:space:]]+$ ]]; then echo "Tu direccion es: $ADDRESS" else echo "Hay un error en la direccion" fi #validar numero telefonico if [[ $PHONE =~ ^[0-9]+$ ]]; then echo "Tu numero de telefono es: $PHONE" else echo "Tu numero no puede contener caracteres" fi ```
\#! /bin/bash/ \#Stenon \# Programa para cumplir el reto read -p "Introduce tus nombres: " FIRST\_NAMES read -p "Introduce tus apellidos: " LAST\_NAMES read -p "Introduce tu edad: " AGE read -p "Introduce tu direccion: " ADDRESS read -p "Introduce tu numero telefonico: " PHONE \# validar nombre if \[\[ $FIRST\_NAMES =~ ^\[a-z,A-Z\[:space:]]+$ ]]; then echo "Tu nombre es: $FIRST\_NAMES" else echo "Tu nombre no puede contener numeros" fi \#validar apellido if \[\[ $LAST\_NAMES =~ ^\[a-z,A-Z\[:space:]]+$ ]]; then echo "Tu apellido es: $LAST\_NAMES" else echo "Tu apellido no puede contener numeros" fi \# Validar Edad if \[\[ $AGE =~ ^\[0-9]{1,3}+$ ]]; then echo "Tu edad es: $AGE" else echo "Tu edad no puede contener caracteres" fi \#validar direccion if \[\[ $ADDRESS =~ ^\[a-z,A-Z,0-9\[:space:]]+$ ]]; then echo "Tu direccion es: $ADDRESS" else echo "Hay un error en la direccion" fi \#validar numero telefonico if \[\[ $PHONE =~ ^\[0-9]+$ ]]; then echo "Tu numero de telefono es: $PHONE" else echo "Tu numero no puede contener caracteres" fi
`#! /bin/bash/` `#Stenon ` `# Programa para cumplir el reto` `read -p "Introduce tus nombres: " FIRST_NAMES` `read -p "Introduce tus apellidos: " LAST_NAMES` `read -p "Introduce tu edad: " AGE` `read -p "Introduce tu direccion: " ADDRESS ` `read -p "Introduce tu numero telefonico: " PHONE` `# validar nombre` `if [[ $FIRST_NAMES =~ ^[a-z,A-Z[:space:]]+$ ]]; then` ` echo "Tu nombre es: $FIRST_NAMES" ` `else ` ` echo "Tu nombre no puede contener numeros" ` `fi` `#validar apellido` `if [[ $LAST_NAMES =~ ^[a-z,A-Z[:space:]]+$ ]]; then` ` echo "Tu apellido es: $LAST_NAMES" ` `else ` ` echo "Tu apellido no puede contener numeros" ` `fi` `# Validar Edad` `if [[ $AGE =~ ^[0-9]{1,3}+$ ]]; then` ` echo "Tu edad es: $AGE" ` `else ` ` echo "Tu edad no puede contener caracteres" ` `fi` `#validar direccion` `if [[ $ADDRESS =~ ^[a-z,A-Z,0-9[:space:]]+$ ]]; then` ` echo "Tu direccion es: $ADDRESS" ` `else ` ` echo "Hay un error en la direccion" ` `fi` `#validar numero telefonico` `if [[ $PHONE =~ ^[0-9]+$ ]]; then` ` echo "Tu numero de telefono es: $PHONE" ` `else ` ` echo "Tu numero no puede contener caracteres" ` `fi`
  1 #!/bin/bash
  2
  3 # Reto 2
  4
  5 nombre_regex='^[A-Za-z ]+$'
  6 apellido_regex='^[A-Za-z ]+$'
  7 edad_regex='^[0-9]{1,3}$'
  8 direccion_regex='^[A-Za-z0-9 ]+$'
  9 telefono_regex='^[0-9]{6,10}$'
 10
 11 read -p "Ingresa tu nombre: " nombre
 12 read -p "Ingresa tu apellido: " apellido
 13 read -p "Ingresa tu edad: " edad
 14 read -p "Ingresa tu direccion: " direccion
 15 read -p "Ingresa tu telefono: " telefono
 16
 17 if [[ $nombre =~ $nombre_regex ]]; then
 18   echo -e "\nTu nombre es $nombre"
 19 else
 20   echo -e "\nNombre es inválido"
 21 fi
 22
 23 if [[ $apellido =~ $apellido_regex ]]; then
 24   echo -e "\nTu apellido es $apellido"
 25 else
 26   echo -e "\nApellido es inválido"
 27 fi
 28
 29 if [[ $edad =~ $edad_regex ]]; then
 30   echo -e "\nTu edad es $edad"
 31 else
 32   echo -e "\nEdad es inválido"
 33 fi
 34 if [[ $direccion =~ $direccion_regex ]]; then
 35   echo -e "\nTu dirección es $direccion"
 36 else
 37   echo -e "\nDirección es inválida"
 38 fi
 39
 40 if [[ $telefono =~ $telefono_regex ]]; then
 41   echo -e "\nTu teléfono es $telefono"
 42 else
 43   echo -e "\nTeléfono es inválido"
 44 fi

Reto completado

1. \#!/bin/bash 2. 3. read -p "Introduce tu nombre: " nombre 4. read -p "Introduce tus apellidos: " apellidos 5. read -p "Introduce tu edad: " edad 6. read -p "Introduce tu dirección: " direccion 7. read -p "Introduce tu número telefónico: " telefono 8. 9. echo "Información recopilada:" 10. echo "Nombre: $nombre" 11. echo "Apellidos: $apellidos" 12. echo "Edad: $edad" 13. echo "Dirección: $direccion" 14. echo "Número telefónico: $telefono" 15.
`#!/bin/bash` `#Programa que solicita los datos del usuario y los imprime en pantalla` `#Autor: Jesus Reyes - `[`[email protected]`](mailto:[email protected]) `name=""` `segName=""` `apPaterno=""` `apMaterno=""` `edad=0` `` date=`date` `` `fileSystem=$(df -kh)` `read -p "Ingresa tu nombre:" name` `read -p "Ingresa tu segundo Nombre:" segName` `read -p "Ingresa tu Apellido Paterno:" apPaterno` `read -p "Ingresa tu Apellido Materno:" apMaterno` `read -p "Ingresa tu Edad:" edad` `echo "Estos son tus datos al dia $date"` `echo "Estas logueado como: $LOGNAME"` `echo -e "Bienvenido $apPaterno $apMaterno $name $segName $edad years old"` `echo -e "este es tu filesystem actual:"` `echo -e "$fileSystem\n"`

Mi solución

# !/bin/bash
# Programa para ejemplificar como capturar información del usuario y validarla utilizando expresiones regulares
# Author: Francisco Garcia - [email protected]

nombresRegex="^[a-z][A-Z]{20}$"
apellidosRegex="^[a-z][A-Z]{20}$"
edadRegex="^[0-9]{2}$"
direccionRegex="^[0-9]+(?:[A-Za-z]+\s*)*(?:[#\-\s]+[0-9A-Za-z\s]+)*$"
numeroTelefonoRegex="^[0-9]{10}$"

echo "Información personal"
read -n20 -p "Ingrese nombres: " nombres
echo -e "\n"
read -n20 -p "Ingrese apellidos: " apellidos
echo -e "\n"
read -n2 -p "Ingrese edad: " edad
echo -e "\n"
read -n50 -p "Ingrese direccion: " direccion
echo -e "\n"
read -n10 -p "Ingrese numero telefonico: " numeroTelefono

# Validación Nombres
if [[ $nombres =~ $nombresRegex ]]; then
    echo "Nombres: $nombres validos"
else
    echo "Nombres: $nombre invalido"
fi

# Validación Apellidos
if [[ $apellidos =~ $apellidosRegex ]]; then
    echo "Apellidos $apellidos validos"
else
    echo "Apellidos $apellidos invalidos"
fi

# Validación Edad
if [[ $edad =~ $edadRegex ]]; then
    echo "Edad $edad valida"
else
    echo "Edad $edad invalida"
fi

# Validación Direccion
if [[ $direccion =~ $direccionRegex ]]; then
    echo "Direccion $direccion valida"
else
    echo "Direccion $direccion invalida"
fi

# Validación Numero de Telefono
if [[ $numeroTelefono =~ $numeroTelefonoRegex ]]; then
    echo "Edad $numeroTelefono valido"
else
    echo "Edad $numeroTelefono invalido"
fi


echo "Nombres: $nombres, Apellidos: $apellidos"
echo "Edad: $edad"
echo "Direccion: $direccion"
echo "Numero de Telefono: $numeroTelefono"

\#!/bin/bash echo "ingrese nombre: " read var1 echo "ingrese apellidos: " read var2 echo "ingrese la dirección: " read var3 echo "Ingrese el número telefonico: " read var4 echo "Nombre : $var1" echo "Apellido: $var2" echo "Dirección: $var3" echo "Número telefonico: $var4"
<# Ingresar Datos Manera 2
nombreregex='^[a-zA-Z]*$' #Permite solo letras ya sean en mayusculas o minusculas
apellidoregex='^[a-zA-Z]*$' #Permite solo letras ya sean en mayusculas o minusculas
direccionregex='^[\w]|[_a-zA-Z0-9" "]*$' #Esta Variable Regex permite Ingresar Valores Alfanumericos (letras, espacios, numero y simbolos)
edadregex='^[0-9]{1}|[0-9]{2}|[0-9]{3}$' #Permite ingresar solo numero ya sean de una unidad, decenas o centenas.
numeroregex='^[0-9]{8}$' #Permite ingresar solo numeros con un rango de valores de 8.

read -p "Ingrese su Nombre: " nombre
read -p "Ingrese su Apellido: " apellido
read -p "Ingrese su Edad: " edad
read -p "Ingrese su Direccion: " direccion
read -p "Ingrese su Numero Telefonico: " numero
echo -e "\n"
echo "*************** Datos Ingresado **************"

if [[ $nombre =~ $nombreregex ]]; then
echo "Nombre: $nombre Ingresado"
else
echo "Nombre: $nombre Invalido"
fi

if [[ $apellido =~ $apellidoregex ]]; then
echo "Apellido: $apellido Ingresado"
else
echo "Apellido: $apellido Invalido"
fi

if [[ $edad =~ $edadregex ]]; then
echo "Edad: $edad Ingresada"
else
echo "Edad: $edad Invalida"
fi

if [[ $direccion =~ $direccionregex ]]; then
echo "Direccion: $direccion Ingresada"
else
echo "Direccion: $direccion Invalida"
fi

if [[ $numero =~ $numeroregex ]]; then
echo "Numero de Telefono: $numero Ingresado"
else
echo "Numero de Telefono: $numero Invalido"
fi> 
<# Ingresar Datos Manera 1
read -p "Ingrese su Nombre: " nombre
read -p "Ingrese su Apellido: " apellido
read -p "Ingrese su Edad: " edad
read -p "Ingrese su Direccion: " direccion
read -n8 -p "Ingrese su Numero Telefonico: " numero
echo -e "\n"
echo "**************** Datos Ingresados ************"
echo "Nombre: $nombre"
echo "Apellido: $apellido"
echo "Edad: $edad"
echo "Direccion: $direccion"
echo "Numero Telefonico: $numero"> 

#!/bin/bash

Función para validar nombres y apellidos

validate_name() {
local name="$1"
if ! [[ $name =~ ^[A-Za-z\ ]+$ ]]; then
echo "Nombre o apellido inválido"
exit 1
fi
}

Función para validar la edad

validate_age() {
local age="$1"
if ! [[ $age =~ ^[0-9]+$ ]]; then
echo "Edad inválida"
exit 1
fi
}

Función para validar la dirección

validate_address() {
local address="$1"
if [[ ! $address ]]; then
echo "Dirección inválida"
exit 1
fi
}

Función para validar números telefónicos

validate_phone() {
local phone="$1"
if ! [[ $phone =~ ^[0-9]+$ ]]; then
echo "Número telefónico inválido"
exit 1
fi
}

Solicitar información del usuario

read -p "Ingrese su nombre: " name
read -p "Ingrese su apellido: " lastname
read -p "Ingrese su edad: " age
read -p "Ingrese su dirección: " address
read -p "Ingrese su número telefónico: " phone

Validar la información ingresada

validate_name "$name"
validate_name "$lastname"
validate_age "$age"
validate_address "$address"
validate_phone “$phone”

Imprimir la información

echo "Información del usuario:"
echo "Nombre: $name"
echo "Apellido: $lastname"
echo "Edad: $age"
echo "Dirección: $address"
echo “Número telefónico: $phone”

Reto 2 Resuelto

# !/bin/bash
# Reto 2 Solicitar la información de cada uno de ustedes como Edads, Direccións, edad, dirección y números telefónicos; y posterior imprima toda la información.
# Autor: Ricardo Portillo - @spyderp

name=""
lastName=""
age=""
address=""
phone=0

validateText="^[A-Za-z]{3,}$"
validateAge="^[0-9]{2}"
validatePhone="^[0-9]{3,4}-[0-9]{4}$"

echo "#### RETO 2 ####"
read -p "Ingresar su nombre:" name
read -p "Ingresar su apellido:" lastName
read -p "Ingresar su edad:" age
read -p "Ingresar su dirección:" address
read -p "Ingresar su número de teléfono (0000-00000):" phone

#Validación Identificación
if [[ $name =~ $validateText ]]; then
    echo "Nombre: $name"
else
    echo "Nombre: Invalido"
fi

if [[ $lastName =~ $validateText ]]; then
    echo "Apellido: $lastName"
else
    echo "Apellido: Invalido"
fi

if [[ $age =~ $validateAge ]]; then
    echo "Edad: $age"
else
    echo "Edad: Invalido"
fi

echo "Dirección: $address"

if [[ $phone =~ $validatePhone ]]; then
    echo "Teléfono: $phone"
else
    echo "Teléfono: Invalido"
fi

Mi codigo

# !/bin/bash
regexedad='^[0-9]{1,10}$'
regexnombre='^[a-zA-ZñÑáéíóúÁÉÍÓÚ]+$'
regexapellido='^[a-zA-ZñÑáéíóúÁÉÍÓÚ]+$'
regexdireccion='^([A-Z]*)'
regexnumero='^[0-9]{1,10}$'

val_name="false"
val_edad="false"
val_apellido="false"
val_direccion="false"
val_numero="false"
while [ "$val_name" == "false" ]
do
read -p "Ingrese su nombre: " nombre
if [[ $nombre =~ $regexnombre ]]; then
    echo "nombre valido"
    val_name="true"
    else
        echo "nombre invalido"
        val_name="false"
        fi
done

while [ "$val_edad" == "false" ]
do
read -p "Ingrese su edad: " edad
if [[ $edad =~ $regexedad ]]; then
    echo "edad valida"
    val_edad="true"
    else
        echo "edad invalida"
        val_edad="false"
        fi
done

while [ "$val_apellido" == "false" ]
do
read -p "Ingrese su apellido: " apellido
if [[ $apellido =~ $regexapellido ]]; then
    echo "apellido valido"
    val_apellido="true"
    else
        echo "apellido invalido"
        val_apellido="false"
        fi
done

while [ "$val_direccion" == "false" ]
do
read -p "Ingrese su direccíon: " direccion
if [[ $direccion =~ $regexdireccion ]]; then
    echo "dirección valida"
    val_direccion="true"
    else
        echo "direccion invalida"
        val_direccion="false"
        fi
done
while [ "$val_numero" == "false" ]
do
read -p "Ingrese su numero telefonico: " numero
if [[ $numero =~ $regexnumero ]]; then
    echo "numero valido"
    val_numero="true"
    else
        echo "numero invalido"
        val_numero="false"
        fi
done
echo -e "Nombre= $nombre \n Apellido= $apellido \n Dirección= $direccion \n Edad= $edad \n Telefono= $numero"

Mi aporte

!/bin/bash

Solicitar la informacion de cada uno de ustedes cmo nombres, apellidos, edad, direcion y numeros telefonicos y posterior imprimir toda la informacion

Alejandro Diaz -

Names="“
Apellidos=”“
Edad=”“
Direccion=”“
NumeroTelefonico=”"

echo "LLENAR LA SIGUIENTE INFORMACION"
read -p “Nombres:” Names
read -p "Apellidos: " Apellidos
read -p “Edad:” Edad
read -p "Direccion: " Direccion
read -p "WhatsApp: " NumeroTelefonico
echo -e “\n\n\n"
echo -e " Nombre completo: $Names $Apellidos \n Edad: $Edad \n Direccion: $Direccion \n WhatsApp: $NumeroTelefonico”

Con emojis y tal:

#!/bin/bash
#Ejercicio practico: solicitud e impresion de datos personales tipo formulrios
#Autor: Sergio A.Vargas

edadRX='^([1-9]{1,2})$'
nombreRX='^([A-Z]{1})([a-z]*)$'
apellidoRX='^([A-Z]{1})([a-z]*)$'
direccionRX='^([A-Z]{1}*)([a-z]*\s)([0-9]*)$'
telefonoRX='^([0-9]{10})$'

#Solicitud de datos
echo "Por favor, ingresa tus datos personales: "
read -p "Ingresa tu nombre: " nombre
read -p "Ingresa tu apellido: " apellido
read -p "Ingresa tu edad: " edad
read -p "Ingresa tu direccion: " direc
read -p "Ingresa tu numero telefonico: " phone

#Validacion nombre
if [[ $nombre =~ $nombreRX ]]; then
    echo -e "nombre valido \U0001F44D"
else
    echo -e "nombre invalido \U0001F44E"
fi

#Validacion apellido
if [[ $apellido =~ $apellidoRX ]]; then
    echo -e "apellido valido \U0001F44D"
else
    echo -e "apellido invalido \U0001F44E"
fi

#Validacion edad
if [[ $edad =~ $edadRX ]]; then
    echo -e "edad valida \U0001F44D"
else
    echo -e "edad invalida \U0001F44E"
fi

#Validacion telefono
if [[ $phone =~ $telefonoRX ]]; then
    echo -e "telefono valido \U0001F44D"
else
    echo -e "telefono invalido \U0001F44E"
fi

#Validacion direccion
if [[ $direc =~ $direcionRX ]]; then
    echo -e "direccion valida \U0001F44D"
else
    echo -e "direccion invalida \U0001F44E"
fi

echo "#################################"
echo "Tus datos: "
echo "Tu nombre completo es: $nombre $apellido"
echo "Tienes $edad anhos."
echo "Numero telefonico: $phone"
echo "Direccion: $direc"

#!/bin/bash
# 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.

# Función para validar la información ingresada mediante expresiones regulares
validate_input() {
  local input=$1
  local regex=$2

  if [[ ! $input =~ $regex ]]; then
    echo "Error: La información ingresada no es válida."
    exit 1
  fi
}

# Solicitar información personal
read -p "Ingrese su nombre: " nombre
validate_input "$nombre" "^[A-Za-zÁÉÍÓÚáéíóúñÑ]+$"

read -p "Ingrese sus apellidos: " apellidos
validate_input "$apellidos" "^[A-Za-zÁÉÍÓÚáéíóúñÑ]+$"

read -p "Ingrese su edad: " edad
validate_input "$edad" "^[0-9]+$"

read -p "Ingrese su dirección: " direccion

read -p "Ingrese su número de teléfono (formato: xxx-xxx-xxxx): " telefono
validate_input "$telefono" "^[0-9]{3}-[0-9]{3}-[0-9]{4}$"

# Imprimir la información ingresada
echo "Información personal:"
echo "Nombre: $nombre"
echo "Apellidos: $apellidos"
echo "Edad: $edad"
echo "Dirección: $direccion"
echo "Teléfono: $telefono"

Mi Solucion

#!/bin/bash

# Solicitar información personal
read -p "Ingrese su nombre completo: " nombre
read -p "Ingrese su edad: " edad
read -p "Ingrese su dirección: " direccion
read -p "Ingrese su número telefónico: " telefono

# Validar nombre completo
if ! [[ $nombre =~ ^[a-zA-Z]+\s[a-zA-Z]+$ ]]; then
  echo "Error: El nombre ingresado es inválido"
  exit 1
fi

# Validar edad
if ! [[ $edad =~ ^[0-9]+$ ]]; then
  echo "Error: La edad ingresada es inválida"
  exit 1
fi

# Validar dirección
if ! [[ $direccion =~ ^[a-zA-Z0-9\s#-]+$ ]]; then
  echo "Error: La dirección ingresada es inválida"
  exit 1
fi
#!/bin/bash
echo "Por favor ingrese su nombre, edad y ocupación"
echo "primero su nombre"
read  name
echo "Después su edad.."
read age
echo "Ahora su ocupación.."
read ocupation
echo "Hola $name tu edad e de $age y tu ocupación es $ocupation"

Reto resuleto

! /bin/bash

Programa para completar el reto 2

Autor: Liliana Palacios Martín

nombre="“
apellido=”“
edad=”“
direcccion=”“
telefono=”"

echo "Mi información personal"
read -p “Ingresa tu nombre:” nombre
echo -e "\n"
read -p “Ingresatu apellido:” apellido
echo -e "\n"
read -p “Ingresa tu edad:” edad
echo -e "\n"
read -p “Ingresa tu direccion:” direcccion
echo -e "\n"
read -p “Ingresa tu telefono:” telefono
echo "nombre:$nombre , apellido:$apellido"
echo -e "\n"
echo "edad: $edad"
echo -e "\n"
echo "direcccion: $direcccion"
echo -e "\n"
echo “telefono: $telefono”

! /bin/bash

ingrear nombre y edad

read -p “ingresar nombre” nombre
read -p “igresar edad” edad

echo “hola $nombre , tu edad es $edad”

#!/bin/bash
# Programa reto 2 
# Solicitar información al usuario de
# nombre, apellidos, edad, dirección, números telefónicos
# y después imprimir toda la información
# Autor Joserra Marzo 2023

echo "Programa reto 2"
valEdad='^([1-9][0-9]*)$'
valNombre='^([A-Z a-z ñÑ]{2,35})$'
valTelefono='^([0-9]{6,9})$'

read -p "Nombre : " nombre

# Verificar Nombre 
if [[ ! $nombre =~ $valNombre ]]; then
        echo "valor nombre $nombre no válido"
        exit
fi

read -p "Primer Apellido : " apellido1
# Verificar apellido1 
if [[ ! $apellido1 =~ $valNombre ]]; then
        echo "valor apellido $apellido1 no válido"
        exit
fi

read -p "Segundo Apellido : " apellido2
# Verificar apellido2
if [[ ! $apellido2 =~ $valNombre ]]; then
        echo "valor apellido $apellido2 no válido"
        exit
fi

read -n 33 -p "Dirección : " domicilio
read -p "Edad : " edad
# Verificar edad 
if [[ ! $edad =~ $valEdad ]]; then
        echo "valor edad $edad no válido"
        exit
fi

read -p "Teléfono : " telefono
# Verificar teléfono
if [[ ! $telefono =~ $valTelefono ]]; then
        echo "valor telefono  $telefono no válido"
        exit
fi

echo -e "\nDatos correctos"
echo "Nombre y Apellidos : $nombre $apellido1 $apellido2"
echo "Dirección : $domicilio"
echo "Edad : $edad"
echo "Teléfono : $telefono"

En la validación de nombres hay que incluir la ñ así :
valNombre=’^([A-Z a-z ñÑ]{2,35})$

Mi programa Sencillito, pero con gusto

#!/bin/bash
#Programa que solicita los datos del usuario y los imprime en pantalla
#Autor: Jesus Reyes - [email protected]

name=""
segName=""
apPaterno=""
apMaterno=""
edad=0
date=`date`
fileSystem=$(df -kh)
read -p "Ingresa tu nombre:"  name
read -p "Ingresa tu segundo Nombre:" segName
read -p "Ingresa tu Apellido Paterno:" apPaterno
read -p "Ingresa tu Apellido Materno:" apMaterno
read -p "Ingresa tu Edad:" edad



echo "Estos son tus datos al dia $date"
echo "Estas logueado como: $LOGNAME"
echo -e "Bienvenido $apPaterno $apMaterno $name $segName  $edad years old"
echo -e "este es tu filesystem actual:"

# !/bin/bash
# Gets personal info and then print it
# Fernando Sanchez

#Declarar variables
name=""
lastname=""
age=""
address=""
cellPhone=""

echo "Type your data: "
read -p "Cual es tu nombre: " name
read -p "What is your last name: " lastname
read -p "How old are you: " age
read -p "Where do you live? " address
read -p "What is your cellphone? " cellPhone

echo -e "\n"
echo "Your data: "
echo "Your name: $name"
echo "Your lastname $address"
echo "Your age is $age"
echo "Your cellphone  is $cellPhone"

No es mucho pero es trabajo honesto.

# ! /bin/bash
# Este es un programa para resolver el reto: poder solicitar la informacion de usuario y despues imprimirlo.

name=""
lastName=""
age=0
address=""
numberPhone=0

echo "Enter your data"
read -p "What's your name? " name
read -p "What's your last Name? " lastName
read -p "How old are you? " age
read -p "What's your address? " address
read -p "What's your number phone? " numberPhone
echo -e "\n"
echo "Your full name is: $name $lastName"
echo "Your age is: $age"
echo "Your addres is: $address"
echo "Your number phone is: $numberPhone"

Hola, este es mi código:

#!/bin/bash
# Programa para resolver el reto: 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.
# Autor: Sandra Guayambuco

soloLetrasRegex='^[a-zA-Z\s]+$'
telefonoRegex='^[0-9]{9}$'
edadRegex='^[0-9]{0,2}$|^100$'
noVacioRegex='^.+$'

nombre=""
apellido=""
edad=0
direccion=""
telefono=0

#validacion nombre
read -p "Inserte solo su nombre: " nombre
if [[ $nombre =~ $soloLetrasRegex ]] ; then
    echo "Su nombre es: $nombre "
else
    echo "Ese no es un nombre válido"
fi

#validacion apellido
read -p "Inserte su apellido: " apellido
if [[ $apellido =~ $soloLetrasRegex ]]; then
    echo "Su apellido es: $apellido"
else
    echo "Ese no es un apellido válido"
fi

#validacion edad 
read -p "Inserte su edad: " edad

if [[ $edad =~ $edadRegex ]]; then
    echo "Su edad es: $edad"
else
    echo "Esa edad es inválida"
fi

#validacion  direccion
read -p "Inserte su direccion: " direccion

if [[ $direccion =~ $noVacioRegex ]]; then
    echo "Su direccion es: $direccion"
else
    echo "Esa direccion es inválida"
fi


#validacion telefono
read -p "Inserte su numero telefonico: " telefono
if [[ $telefono =~ $telefonoRegex ]]; then
    echo "Su número de teléfono es: $telefono"
else
    echo "Ese número es inválido"
fi

echo -e "\n Los datos almacenados son:\n "
echo "Nombre: $nombre"
echo "Apellido: $apellido"
echo "Edad: $edad"
echo "Dirección: $direccion"
echo "Teléfono: $telefono"

Menciono que para zsh no me funcionaron los if para validar los datos, tuve que interpretar el script con bash

Mi código, basado un poco en otros comentarios:

# !/bin/bash
# Programa para solicitar información personal del usuario utilizando el comando read
# Autor: Santiago Muñoz Ruiz

name=""
lastName=""
age=0
address=""
cellphoneNum=0
ageRegex="^[0-9]{1,2}$"
cellphoneNumRegex="^[0-9]{10}$"

echo "Programa de Información Personal"
read -p "Ingresar tu nombre:" name
read -p "Ingresar tus apellidos:" lastName
read -p "Ingresar tu edad:" age
if [[ $age =~ $ageRegex ]]; then
  echo "Edad válida"
else
  echo "Edad inválida"
fi
read -p "Ingresar tu dirección:" address
read -p "Ingresar tu número de teléfono:" cellphoneNum
if [[ $cellphoneNum =~ $cellphoneNumRegex ]]; then
  echo "Número de teléfono válido"
else
  echo "Número de teléfono inválido"
fi
echo "Tu nombre completo es $name $lastName, tienes $age años, tu dirección es $address y tu número de teléfono es $cellphoneNum"

#!/bin/bash
#reto2
#autor: Adrian

echo ------formulario-------
read -p “ingrese su nombre:” nombre
read -p “ingrese su apellido:” apellido
read -p “ingrese su edad:” edad
read -p “ingrese su direccion:” direccion
read -p “ingrese su telefono:” telefono
echo -----------------------

echo "Son estos sus datos"
echo $nombre $apellido $edad $direccion $telefono

  1 # ! /bin/bash
  2 # Este programa resuelve el reto numero 2 del curso.
  3
  4 echo "Bienvenido al programa de carga de datos personales"
  5 echo -e "\n"
  6 read -p "Ingrese su nombre:" nombre
  7 read -p "Ingrese su apellido:" apellido
  8 read -p "Ingrese su edad:" edad
  9 read -p "Ingrese su numero de telefono:" telefono
 10 read -p "Ingese su direccion:" direccion
 11 echo -e "\n"
 12 echo "Nombre y apellido: $nombre, $apellido"
 13 echo -e "\n"
 14 echo "Edad: $edad "
 15 echo -e "\n"
 16 echo "Numero de telefono: $telefono"
 17 echo -e "\n"
 18 echo "Direccion: $direccion"

Terminal:

Código:

#!/bin/bash
# Request information from each of you such names, surmanes, age, address and telephone numbers; and then print all the information.
# Author: Cristian Camilo - Cristianco9

# Regular expression filter
nameRegEx='^[A-Za-z ]+$'
surnameRegEx='^[A-Za-z ]+$'
ageRegEx='^[0-9]{1,2}$'
addressRegEx='^[A-Za-z0-9 #-]+$'
phoneRegEx='^[0-9]{10}$'

# Prompt
echo "****************** SYSTEM REQUEST******************"
echo "********************* Sign In *********************"
echo -e "\n"

# Name
read -p "Please enter a name: " name
while [[ ! $name =~ $nameRegEx ]]; do
    echo -e "INCORRECT VALUE"
    read -p "Please enter a name: " name
done

# Surname
read -p "Please enter a surname: " surname
while [[ ! $surname =~ $surnameRegEx ]]; do
    echo -e "INCORRECT VALUE"
    read -p "Please enter a surname: " surname
done

# Age
read -p "Please enter a age: " age
while [[ ! $age =~ $ageRegEx ]]; do
    echo -e "INCORRECT VALUE"
    read -p "Please enter a age: " age
done

# Address
read -p "Please enter a address: " address
while [[ ! $address =~ $addressRegEx ]]; do
    echo -e "INCORRECT VALUE"
    read -p "Please enter a address: " address
done

# Phone
read -p "Please enter a phone number: " phone
while [[ ! $phone =~ $phoneRegEx ]]; do
    echo -e "INCORRECT VALUE"
    read -p "please enter a phone number: " phone
done
echo -e "\n"
echo "******************* Please wait *******************"
echo -e "\n"
echo "********** New user created successfully **********"

# New user assets
echo "User name: $name $surname"
echo "Age: $age"
echo "Address: $address"
echo "Phone: $phone"
echo "***************************************************"

Hola, código solución del reto:

#!/bin/bash 

echo "Ingrese sus datos:"
read -p " 1) Nombre: " nombre
read -p " 2) Edad: " edad
read -p " 3) Direccion: " direccion
read -p " 4) Teléfono: " telefono

echo "
  Hola señor(a) ${nombre}, con ${edad} años de edad
  usted puede reclamar totalmente gratis un apartamento 
  en ${direccion}, para mayor información contactenos 
  desde su número ${telefono} a traves de WhatsApp
  al número +123456789012.
"

!/bin/bash

Programa Reto 2 para captura de informacion y presentacion de resultados

Mario ernesto Alfaro [email protected]

echo Introduccion y presentacion de datos
nombre="“
Apellido=”“
edad=”“
direccion=”“
telefono=”"
read -p "ingresa tu nombre: " nombre
read -p "ingresa tu apellido: " apellido
read -p "Ingresa tu edad: " edad
read -p "Ingresa direccion: " direccion
read -p "Ingresa tu numero telefonico: " numero telefonico
echo -e "\nTus datos personales"
echo -e “Tu nombre es:” $nombre $apellido
echo -e "Tu edad es: $edad
echo -e "Tu direccion es: " $direccion
echo - e "Tu numero telefonico es: " $numero telefonico

Anexo mi código con las validaciones del caso.

#!/bin/bash
read -p "Digita tu nombre: " nombre
read -p "Digita tu apellido: " apellido
read -p "digita tu edad: " edad
read -p "digita tu dirección: " direccion
read -p "digita tu numero de telefono: " celular

nombreRegex='^[a-zA-Z]?([a-zA-Z]|\.| |-)+$'
edadRegex='^[0-9]{1,3}$'
direccionRegex='^[a-zA-Z0-9áéíóúñÁÉÍÚѺª#,|\.| |-]+$'
celularRegex='^[0-9]{7,10}$'

if [[ $nombre =~ $nombreRegex ]]; then
    echo "valida"
else
    echo "invalida"
fi
if [[ $apellido =~ $nombreRegex ]]; then
    echo "valida"
else
    echo "invalida"
fi
if [[ $edad =~ $edadRegex ]]; then
    echo "valida"
else
    echo "invalida"
fi
if [[ $direccion =~ $direccionRegex ]]; then
    echo "valida"
else
    echo "invalida"
fi
if [[ $celular =~ $celularRegex ]]; then
    echo "valida"
else
    echo "invalida"
fi

Reto 2 Completado:

# Declarar dos variables e imprimir resultado
#autor: Senter05 - srgm2004

echo "Reto 2"
echo "cual es tu nombre?"
read name

echo "Cual es tu apellido?"
read apellido

echo "Cuantos anos tienes?"
read age

echo "Direccion:"
read adress

echo "Numero de telefono:"
read phone

echo "Tu nombre es: $name $apellido"
echo "Edad: $age"
echo "Direccion: $adress "
echo "Telefono: $phone "

Reto cumplido

# !/bin/bash
# Programa para ejemplificar la solicitud de información como nombres, apellidos, edad, dirección y números telefónicos; y posterior imprima toda la información.
# Autor: Haward Tillero 12/06/2022

textoRegex='^[A-Z a-z]{2,35}$'
direccionRegex='^[A-Z a-z 0-9 .,#]{1,50}$'
telefonoRegex='^[0-9 -.+]{1,15}$'
i=0

echo -e "Solicitud de Datos"

#Nombres
while [[ $i -eq 0 ]]; do
    read -p "Ingrese su Nombre:" nombres
        if [[ $nombres =~ $textoRegex ]]; then
            ((i++))
        else
            echo "El Nombre ingresado $nombres no es válido"
        fi
done

#Apellidos
i=0
while [[ $i -eq 0 ]]; do
    read -p "Ingrese su Apellido:" apellidos
        if [[ $apellidos =~ $textoRegex ]]; then
            ((i++))
        else
            echo "El Apellido ingresado $apellidos no es válido"
        fi
done

#Dirección
i=0
while [[ $i -eq 0 ]]; do
    read -p "Ingrese su Dirección:" direccion
        if [[ $direccion =~ $direccionRegex ]]; then
            ((i++))
        else
            echo "Debe ingresar una dirección"
        fi
done

#Teléfono
i=0
while [[ $i -eq 0 ]]; do
    read -p "Ingrese su Número de Teléfono:" telefono
        if [[ $telefono =~ $telefonoRegex ]]; then
            ((i++))
        else
            echo "El Número de Teléfono ingresado es inválido"
        fi
done


#Mostrando los datos
echo -e "Datos Personales"
echo -e "----------------"
echo -e "Nombres: $nombres"
echo -e "Apellidos: $apellidos"
echo -e "Dirección: $direccion"
echo -e "Telélefono: $telefono"

Reto cumplido, desearia aprender un poco más para desarrollar un mejor código

# !/bin/bash
# Programa para reto 2
# Autor: Carlos Hiram 05/06/2022

nombreRegex='^[A-Z a-z]{15}$'
apellidoRegex='^[A-Z a-z]{15}$'
edadRegex='^[0-9]{2}$'
direccionRegex='^[A-Z a-z] {20}$'
telefonoRegex='^[0-9]{10}$'
limpieza=$(clear)

echo "Programa del reto 2"
read -p "Ingrese su nombre: " nombre
echo -e "\n"
read -p "Ingrese su apellido: " apellido
echo -e "\n"
read -p "Ingrese su edad: " edad
echo -e "\n"
read -p "Ingrese su dirección: " direccion
echo -e "\n"
read -p "Ingrese su telefono: " telefono
echo -e "\n"

echo "$limpieza"

echo "Validación de datos"

if [[ $nombre =~ $nombreRegex ]]; then
    echo "el nombre ingresado tiene como máximo 15 cáracteres"
else
    echo "Como recordatorio, el nombre debe contener solo letras y como máximo son 15 cáracteres"
fi

if [[ $apellido =~ $apellidoRegex ]]; then
    echo "El apellido ingresado tiene como máximo 15 cáracteres"
else
    echo "Como recordatorio, el apellido debe contener solo letras y como máximo son 15 cáracteres"
fi

if [[ $edad =~ $edadRegex ]]; then
    echo "La edad ingresada es válida"
else
    echo "La edad introducida inválida, recuerda usar números"
fi

if [[ $direccion =~ $direccionRegex ]]; then
    echo "La direccion ingresada es válida"
else
    echo "La direccion introducida inválida, recuerda usar el siguiente formato ciudad estado"
fi

if [[ $telefono =~ $telefonoRegex ]]; then
    echo "El telefono ingresado es válido"
else
    echo "El telefono introducido inválido, recuerda usar números"
fi

echo "**************************************************"
echo "                DATOS PERSONALES                  "
echo "**************************************************"
echo "Nombre completo: $nombre $apellido"
echo "Edad: $edad"
echo "Dirección: $direccion"
echo "Numero Telefonico: $telefono"
echo "**************************************************"

Para generar y probar expresiones regulares

https://regexr.com/

Yo realice otra confibguración con fecha que me parece interesante manejarlo:

cat 2_validar_información.sh

!/bin/sh

el presente script ejecutar diferentes validaciones

Definir la configuración de cada variable

Val_number_ID=’^[0-9]{5,10}$‘
Val_selecc_option=’^Primero|Segundo|Tercero$‘
Val_date_number=’^[0-9]{4}-[0-9]{2}-[0-9]{2}$’

Ingresar los datos solicitados

read -p "Por favor ingrese el numero de su ID: " number_ID
read -p "Por favor ingrese la opción entre Primero,Segundo,Tercero: " selecc_option
read -p "Por favor ingrese la fecha en formato yyyy-MM-dd: " date_number

Validación del number_ID

if [[ $number_ID =~ $Val_number_ID ]];
then
echo "La identificación provista $number_ID es CORRECTA!!!"
else
echo "La identificación provista $number_ID es INVALIDA"
fi

Validación del selecc_option

if [[ $selecc_option =~ $Val_selecc_option ]];
then
echo "La opción provista $selecc_option es CORRECTA!!!"
else
echo "La opción provista $selecc_option es INVALIDA"
fi

Validación del date_number

if [[ $date_number =~ $Val_date_number ]];
then
echo "La fecha provista $date_number es CORRECTA!!!"
else
echo "La fecha provista $date_number es INVALIDA"
fi

sh 2_validar_información.sh
Por favor ingrese el numero de su ID: 123456789
Por favor ingrese la opción entre Primero,Segundo,Tercero: Primero
Por favor ingrese la fecha en formato yyyy-MM-dd: 2001-12-20
La identificación provista 123456789 es CORRECTA!!!
La opción provista Primero es CORRECTA!!!
La fecha provista 2001-12-20 es CORRECTA!!!

#!/bin/bash

reg_name="^\w{2,32}$"
reg_edad="^[0-9]{1,2}$"
reg_direccion="^([A-Za-z0-9]{12,128})"
reg_phone="^[0-9]{9}$"

nombre=""; apellido=""; edad=""; direccion=""; phone=""

read -p "Ingrese su nombre (2-32 caracteres): " nombre
read -p "Ingrese su apellido (2-32 caracteres): " apellido
read -p "Ingrese su direccion (12-128 caracteres): " direccion
read -p "Ingrese su edad (1-2 digitos): " edad
read -p "Ingrese su numero telefonico (9 digitos): " phone


if ! [[ $nombre =~ $reg_name && $apellido =~ $reg_name && $edad =~ $reg_edad && $direccion =~ $reg_direccion && $phone =~ $reg_phone ]]; then
  echo "Ingrese datos validos"
  return 1
else
  echo -e "Nombre: ${nombre}\nApellido: ${apellido}\nDireccion: ${direccion}\nTelefono: ${phone}"
fi

aca mi codigo humilde

# !/bin/bash
# Reto numero 2: solicitar informacion del usuario e impresion en pantalla.
# Autor: Santiago Molina Ibañez - [email protected]

nombre=""
apellidos=""
edad=0
direccion=""
numero_telefonico=0

echo "Solicitud de información"
read -p "Cual es su nombre?:" nombre
read -p "Cual son sus apellidos?:" apellidos
read -p "Cual es su edad?:" edad
read -p "Cual es su direccion?:" direccion
read -p "Cual es su numero telefonico?:" numero_telefonico

echo -e "\nestos son sus datos:\nnombre:$nombre \napellidos:$apellidos \nedad:$edad \ndireccion:$direccion \nnumero telefonico:$numero_telefonico"
# !/bin/bash
# Reto 2

echo "Reto 2"
read -n20 -p "Ingrese su nombre: " name
read -n20 -p "Ingrese su apellido: " last_name
read -n3 -p "Ingrese su edad: " age
read -n20 -p "Ingrese su direccion: " adress
read -n7 -p "Ingrese su número telefónico: " number
echo -e "\n"
echo "Hola $name $last_name, usted tiene $age años"
echo -e "\n"
echo "Usted vive en $adress,y tu numero telefónico es $number"
#! /bin/bash
# Reto 2
# Christian Rosales @crimirox
name=""
lastname=""
age=""
address=""
phoneNumber=""

read -p "Ingreso el nombre: " name
read -p "Ingreso el apellido: " lastname
read -p "Ingreso la edad: " age
read -p "Ingreso la dirección donde reside: " address
read -p "Ingreso el número telefonico: " phoneNumber

echo "Se ha registrado la persona $name $lastname que tiene la edad de $age que reside actualmente en $address y cuenta con el número telefónico: $phoneNumber"

!/bin/bash

Programa reto 2

nombre="“
apellido=”“
edad=”“
direccion=”“
nroTelefonico=”"

read -p "Ingrese su nombre: " nombre
read -p "Ingrese su apellido: " apellido
read -p "Ingrese su direccion: " direccion
read -p "Ingrese su nroTelefonico: " nroTelefonico
echo -e "\nSus datos personales"
echo -e "Su nombre es: $nombre \nApellido: $

Resultado
##########
Sus datos personales
Su nombre es: FEDERICO
Apellido: HERRERA
Direccion:AMIGOSTA12
NroTelefonico: 331133455
Todos sus datos han sido registrados

Aquí mi solución:

#!/bin/bash
#Programa para introducir datos y imprimirlos por pantalla con validación:
#nombres, apellidos, edad, dirección, móvil

nombreRegex='^[a-zA-Z áéíóúñÁÉÍÓÚÑ]{3,31}$'
apellidosRegex='^[a-zA-Z áéíóúñÁÉÍÓÚÑ]{3,50}$'
edadRegex='^1?[0-9]?[0-9]$'
direccionRegex='^[a-zA-Z0-9áéíóúñÁÉÍÚѺª, ]+$'
movilRegex='^\+?[0-9]+$'

echo "Imprimir por pantalla"
read -p "Ingresar nombre: " nombre
read -p "Ingresar apellidos: " apellidos
read -p "Ingresar edad: " edad
read -p "Ingresar dirección: " direccion
read -p "Ingresar móvil: " movil

#Validar nombre
if [[ $nombre =~ $nombreRegex ]]; then
    echo "Nombre $nombre válido"
else
    echo "Nombre $nombre NO válido"
fi

#Validar apellidos
if [[ $apellidos =~ $apellidosRegex ]]; then
    echo "Apellidos $apellidos válido"
else
    echo "Apellidos $apellidos NO válido"
fi

#Validar edad
if [[ $edad =~ $edadRegex ]]; then
    echo "Edad $edad válido"
else
    echo "Edad $edad NO válido"
fi

#Validar dirección
if [[ $direccion =~ $direccionRegex ]]; then
    echo "Dirección $direccion válido"
else
    echo "Dirección $direccion NO válido"
fi

#Validar móvil
if [[ $movil =~ $movilRegex ]]; then
    echo "Móvil $movil válido"
else
    echo "Móvil $movil NO válido"
fi

Mi Código

# !/bin/bash
# Programa para ejemplificar como capturar la información del usuario y validarla utilizando
# expresiones regulares
# Autor: Angel Estrada

echo "Solicita su informacion"
read -p "Nombre(s): " Nombre
read -p "Apellido Paterno: " ApePat
read -p "Apellido Materno: " ApeMat
read -p "Edad: " edad
read -p "Telefono: " Tel
echo -e "\n Direccion de Usuario" 
read -p "Calle: " DirCalle
read -p "Número Exterior: " DirNumExt
read -p "Número Interior (Opcional): " DirNumInt
read -p "Colonia: " DirCol
read -p "Municipio/Delegacion: " DirMun
read -p "Estado: " DirEst
read -p "Codigo Postal: " DirCP


#Imprime datos:
echo -e "\n\nVerifique su Información\n"
echo "Nombre de Usuario: $Nombre $ApePat $ApeMat"
echo "Edad: $edad"
echo "Telefono Celular: $Tel"
echo -e "Direccion: \nCalle $DirCalle No.$DirNumExt Int.$DirNumInt\nColonia $DirCol, $DirMun, Estado de $DirEst\nCP: $DirCP"

Mi solución al reto

Repositorio

#!/bin/bash
# Program:
#   This program allows you to get name, lastname, age and address from user.
# Path: 2_interactive_scripts/7_challenge_2-basic-info.sh
# Author:
#  Cristian Rincón
#
# How to run this script:
# ./2_interactive_scripts/7_challenge_2-basic-info.sh

name=""
lastname=""
age=""
address=""

echo "Basic info program"
echo "========================="

read -p "Enter your name: " name
read -p "Enter your lastname: " lastname
read -p "Enter your age: " age
read -p "Enter your address: " address

echo "Your name is $name"
echo "Your lastname is $lastname"
echo "Your age is $age"
echo "Your address is $address"
echo -e "\n"

Comparto mi codigo para el Reto:

#!/bin/bash

# Cadenas de validacion
validaNombre='^[a-zA-Z]+[a-zA-Z ]*$'
validaApellido='^[a-zA-Z]+[a-zA-Z ]*$'
validaEdad='^([1-9]|[1-9][0-9])$'
validaDireccion='^[a-zA-Z]+[a-zA-Z0-9]*'
validaTelefono='^[0-9]{9}$'

read -p "Ingrese su Nombre            : " nombre
read -p "Ingrese su Apellido          : " apellido
read -p "Ingrese su Edad              : " edad
read -p "ingrese su Direccion         : " direccion
read -p "ingrese su Numero de Telefono: " telefono

rsNombre="NOMBRE INVALIDO"
rsApellido="APELLIDO INVALIDO"
rsEdad="EDAD INVALIDA"
rsDireccion="DIRECCION INVALIDA"
rsTelefono="TELEFONO INVALIDO"

if [[ $nombre =~ $validaNombre ]]; then
    rsNombre="NOMBRE VALIDO"
fi

if [[ $apellido =~ $validaApellido ]]; then
    rsApellido="APELLIDO VALIDO"
fi

if [[ $edad =~ $validaEdad ]]; then
    rsEdad="EDAD VALIDA"
fi

if [[ dDireccion =~ $validaDireccion ]]; then
    rsDireccion="DIRECCION VALIDA"
fi

if [[ $telefono =~ $validaTelefono ]]; then
    rsTelefono="TELEFONO VALIDO"
fi

echo -e "\n"
echo "Los datos ingresado son los siguientes:"
echo "---------------------------------------"
echo -e "Nombre            : $nombre ($rsNombre)"
echo -e "Apellido          : $apellido ($rsApellido)"
echo -e "Edad              : $edad ($rsEdad)"
echo -e "Direccion         : $direccion ($rsDireccion)"
echo -e "Numero de Telefono: $telefono ($rsTelefono)"

!/bin/bash

#reto 2
regnombre=’^([A-Za-z]{2,50})$‘
regapellido=’^([A-Za-z]{2,50})$‘
regedad=’^([0-9]{1,3})$‘
regdireccion=’^([A-Za-z:espace:]{5:40})$‘
regtelefono=’^([0-9]{9,11})$‘
regcorreo=’^([A-Za-z0-9._%-]{2,30}+@[A-Za-z0-9]{2,20}+.[A-Za-z]{2,5})$'
read -p “ingrese su nombre:” nombre
if [[ $nombre =~ $regnombre ]]; then
echo "valido"
else
echo "No valido"
fi
read -p “ingrese su apellido:” apellido
if [[ $apellido =~ $regapellido ]]; then
echo "valido"
else
echo "No valido"
fi
read -p “edad:” edad
if [[ $edad =~ $regedad ]];then
echo "valido"
else
echo "No valido"
fi
read -p “Dirección:” direccion
if [[ $direccion =~ regdireccion ]];then
echo "valido"
else
echo "No valido"
fi
read -p “Telefono:” telefono
if [[ $telefono =~ $regtelefono ]];then
echo "valido"
else
echo "No valido"
fi
read -p “Correo:” correo
if [[ $correo =~ $regcorreo ]];then
echo "valido"
else
echo "No valido"
fi
echo "Su nombre es: $nombre"
echo "Su apellido: $apellido"
echo "Su edad es: $edad"
echo "Su Dirección es: $direccion"
echo "Su Telefono: $telefono"
echo “Su Correo es: $correo”

Buenas! Comparto mi resolución al reto, saludos!


# !/bin/bash

#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.


#Autor: Nicolás Rodríguez @chino.rodgz


answer=""

#expresiones regulares.
nameRegex='^[a-z]|[A-Z]|[á-ú]|[Á-Ú]$'
surnameRegex='^[a-z]|[A-Z]|[á-ú]|[Á-Ú]$'
ageRegex='^[0-9]{2}$'
adressRegex='^[0-9]|[a-z]|[A-Z]$'
telephoneRegex='^[0-9]{11}$'




echo "PROGRAMA DE REGISTROS"
echo "Si desea ingresar un nuevo registro presione 'y', de lo contrario presione 'n' "
read -p "y/n: " answer

if [[ $answer == "y" ]]
then
    clear
    read -p "Nombre: " name
    read -p "Apellidos: " surname
    read -p "Edad: " age
    read -p "Dirección: " adress
    read -p "Número telefónico: " telephoneNumber

    clear
    echo -e "\n"
    echo "--NUEVO REGISTRO--"
    echo "Nombre: $name"
    echo "Apellidos: $surname"
    echo "Edad: $age"
    echo "Dirección: $adress"
    echo "Número telefónico: $telephoneNumber"


    #Validación de la información.

    echo -e "\n"
    echo "--VALIDACIÓN--"
    if [[ $name =~ $nameRegex ]];then
        echo "Nombre $name válido"
    else
        echo "Nombre $name inválido"
    fi

    if [[ $surname =~ $surnameRegex ]];then
        echo "Apellido $surname válido"
    else
        echo "Apellido $surname inválido"
    fi

    if [[ $age =~ $ageRegex ]];then
        echo "Edad $age válida"
    else
        echo "Edad $age inválida"
    fi

    if [[ $adress =~ $adressRegex ]];then
        echo "Dirección $adress válida"
    else
        echo "Dirección $adress inválida"
    fi

    if [[ $telephoneNumber =~ $telephoneRegex ]];then
        echo "Número telefónico $telephoneNumber válido"
    else
        echo "Número telefónico $telephoneNumber inválido"
    fi


elif [[ $answer == "n" ]]
then
    exit 0

else
    echo "Presione un valor válido"

fi

Resultado de un registro válido en la consola

  1 #! /bin/bash
  2 #Reto2 ejemplificar las entradas y salidas de un programa
  3 #Author:Levi
  4 
  5 userName=""
  6 userLastName=""
  7 userAge=""
  8 userAddress=""
  9 userPhoneNumber=""
 10 
 11 
 12 read -p "Enter you Name: " userName
 13 read -p "Enter Your Last Name: " userLastName
 14 read -p "Enter Your Age: " userAge
 15 read -p "Enter your home address: " userAddress
 16 read -p "Enter Your phone number: " userPhoneNumber
 17 
 18 echo -e "\n"
 19 
 20 echo "Your Name is: $userName $userLastName."
 21 echo "Age: $userAge years old."
 22 echo "Home address: $userAddress."
 23 echo "Phone number: $userPhoneNumber."

Así me quedó:

#!/bin/bash
# Programa para solicitar información al usuario y posteriormente imprimirla en pantalla. 
# By: Rafael Baculima - [email protected]

namesRegex='^[A-Za-zá-üÁ-Ü\ ]*$'
lnamesRegex='^[A-Za-zá-üÁ-Ü\ ]*$'
ageRegex='^[0-9]{1,2}$'
cityRegex='^[A-Za-zá-úÁ-Ú\ ]*$'
phoneRegex='^[0-9]{10}$'


echo "Ingrese la información solicitada a continuación"
read -p "Nombres: " names
until [[ $names =~ $namesRegex ]]; do
    echo "El nombre no debe contener números. Ingrese nuevamente."
    read -p "Nombres: " names
done

read -p "Apellidos: " lnames
until [[ $lnames =~ $lnamesRegex ]]; do
    echo "Los apellidos no deben contener números. Ingrese nuevamente."
    read -p "Apellidos: " lnames 
done

read -p "Edad: " age
until [[ $age =~ $ageRegex ]]; do
    echo "Ingrese una edad válida."
    read -p "Edad: " age 
done

read -p "Ciudad: " city
until [[ $city =~ $cityRegex ]]; do
    echo "Ingrese una ciudad válida."
    read -p "Ciudad: " city
done

read -p "Número de celular: " phone
until [[ $phone =~ $phoneRegex ]]; do
    echo "Su número de teléfono debe tener 10 dígitos. Ingrese nuevamente."
    read -p "Número de celular: " phone
done

echo "-------------------------------------------"
echo "Sus datos son:"
echo "-------------------------------------------"
echo "Nombres:                   $names"
echo "Apellidos                  $lnames"
echo "Edad:                      $age años"
echo "Ciudad:                    $city"
echo "Número de celular:         $phone"
echo "-------------------------------------------"
echo -e "\n"

Dejo mi reto por aqui

# !/bin/bash

#Autor: Anibal Franco
#Version: 1.0
#Reto 02 - Crear un programa que solicite datos del usuario como nombre y apellido, edad, direccion y numero de telefono. Validar los datos de entrada

nombreRegex='^[A-z]{2,}\s?[A-z]{0,}$'
apellidoRegex='^[A-z]{2,}$'
edadRegex='^[0-9]{0,2}$'
direccionRegex='^[A-z]{2,}\s?[A-z]{2,}\s?[0-9]+$'
telefonoRegex='^[0-9]{0,10}$'

echo -e "Ingrese sus datos, por favor:\n"
read -p "Nombre/s: " nombre
read -p "Apellido/s: " apellido
read -p "Edad: " edad
read -p "Domicilio: " direccion
read -p "Telefono: " telefono

#Validamos los datos
if [[ $nombre =~ $nombreRegex ]]; then
    echo "Nombre $nombre valido"
else
    echo "Nombre $nombre invalido"
fi

if [[ $apellido =~ $apellidoRegex ]]; then
    echo "Apellido $apellido valido"
else
    echo "Apellido $apellido invalido"
fi

if [[ $edad =~ $edadRegex ]]; then
    echo "Edad $edad valido"
else
    echo "Edad $edad invalido"
fi

if [[ $direccion =~ $direccionRegex ]]; then
    echo "Direccion $direccion valido"
else
    echo "Direccion $direccion invalido"
fi

if [[ $telefono =~ $telefonoRegex ]]; then
    echo "Telefono $telefono valido"
else
    echo -e "Telefono $telefono invalido\n"
fi

echo "Los datos ingresados son:"
echo "Nombre: $nombre Apellido: $apellido Edad: $edad Domicilio: $direccion Telefono: $telefono"

Slds

No es mucho pero es trabajo honesto…



# ! /bin/bash/
# Programa para solicitar Nombre Apellidos Edad Direccion y Telefono.

echo "Formulario Random"
nombre=""
apellido=""
edad=""
direccion=""
telefono=""

read -p "Ingrese su nombre:" nombre
read -p "Ingrese su apellido:"
read -p "Ingrese su edad:" edad
read -p "Ingrese su Direccion:" direccion
read -p "Ingrese su telefono:" telefono

echo -e "\n"

echo "Tu informacion es:"
echo "Tu Nombre es: $nombre $apellido"
echo "Tu edad es $edad"
echo "Tu direccion es: $direccion"
echo "Tu telefono es: $telefono"

Reto 2

# !/bin/bash

# Programa que recolecta información y la ijmprime en pantalla

name=""
lastname=""
age=0
address=""
cellPhoneNumber=""
phoneNumber=""

ageRegex='^[0-9][0-9]$'
phoneRegex='^[0-9]{10}$'

echo "Captura de datos de usuario"
read -p "Introducir nombre:" name
read -p "Introducir apellido:" lastname
read -p "Introducir edad:" age
read -p "Introducir dirección:" address
read -p "Introducir número celular:" cellPhoneNumber
read -p "Introducir número telefonico de casa:" phoneNumber
echo -e "\n"
echo "La información introducida es la siguiente:"
echo -e "\nNombre Completo: $name $lastname\n"
if [[ $age =~ $ageRegex ]]; then
    echo -e "Edad: $age\n"
else
    echo -e "Edad Inválida\n"
fi
echo -e "Dirección: $address\n"

if [[ $phoneNumber =~ $phoneRegex && $cellPhoneNumber =~ $phoneRegex ]]; then
    echo -e "Telefonos: Celular: $cellPhoneNumber, Casa: $phoneNumber\n"
else
    if [[ $phoneNumber =~ $phoneRegex ]]; then
        echo -e "Telefonos: Celular: Inválido, Casa: $phoneNumber\n"
    else
        echo -e "Telefonos: Celular: $cellPhoneNumber, Casa: Inválido\n"
    fi
fi

Intenté utilizar la mayoria de lo que aprendi para resolver el reto

# ! /bash/bin
# Autor: Jean Rodriguez
# Reto2: 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.

nameV='^[A-Za-z]+[ A-Za-z]*$'
lastnameV='^[A-Za-z]+[ A-Za-z]*$'
ageV='^[0-9]{2}$'
addressV='^[A-Za-z]+[ 0-9a-z 0-9a-z 0-9]+$'
celphoneV='^[0-9]+$'


echo -n "Ingrese su Nombre:"
read
name=$REPLY
if [[ $name =~ $nameV ]]; then
    :
else
    echo "Nombre no válido"
    exit
fi

read -p "Ingrese su Apellido:" lastname
if [[ $lastname =~ $lastnameV ]]; then
    :
else
    echo "Apellido no válido"
    exit
fi

echo -n "Ingrese su Edad:"
read
age=$REPLY

if [[ $age =~ $ageV ]]; then
    :
else
    echo "Edad no válida"
    exit
fi

read -p "Ingrese su Dirección:" address
if [[ $address =~ $addressV ]]; then
    :
else
    echo "Dirección no válida"
    exit
fi

echo -n "Ingrese su número de Celular:"
read
cellphone=$REPLY

if [[ $cellphone =~ $cellphoneV ]]; then
    :
else
    echo "Número de Celular no válido"
    exit
fi

clear

echo -e "Datos Ingresados:\n Nombre: $name \n Apellido: $lastname \n Edad: $age años \n Dirección: $address \n Celular: $cellphone"

Lo hice de esta manera para hacerlo un poco más entretenido

#!/bin/bash

nameRegrex='^[A-Z]{1}[a-z]*$'
ageRegrex='^[1-9]{1,2}$'
addressRegrex='^([A-Z]*)$'
phoneRegrex='^[0-9]{10}$'

read -p "Write your name: " name
read -p "Write your last name: " last
read -p "How old are you? " age
read -p "Where do you live? " address
read -p "Write you phone number: " phone

if [[ $name =~ $nameRegrex ]] && [[ $last =~ $nameRegrex ]]; then
	echo "Hi $name $last"
else
	echo "$name $last sounds weird... Hi..."
fi

echo -e "\n"

if [[ $age =~ $ageRegrex ]] && [[ $address =~ $addressRegrex ]]; then
	echo "How is livig at $address with $age years old?"
elif [[ $age =~ $ageRegrex ]]; then
	echo "My grandpa talk a lot about his life when he was $age..."
	echo -n "But I don't know where is $address"
elif [[ $address =~ $addressRegrex ]]; then
	echo "I went with my mother to $address once"
	echo -n "Maybe I was $age"
else
	echo "Wait, are you $age years old? I don't know where's $address"
fi

echo -e "\n"

if [[ $phone =~ $phoneRegrex ]]; then
	echo "We will call you to $phone"
else
	echo "$phone doesn't look like a phone number in this country"
fi

Encontré un chequer que me pareció interesante, es este

#!/bin/bash
#Programa para capturar información del usuario

nombre=""
apellido=""
edad=""
direccion=""
celular=""

echo "========================================"
echo "=                                      ="
echo "=   Recopilación de datos de usuarios  ="
echo "========================================"
echo "              Bienvenido!!"
read -p "Ingresa tu nombre: " nombre
read -p "Ingresa tu apellido: " apellido
read -p "Escribe tu edad en múmero: " edad
read -p "Ingresa tu dirección: " direccion
read -p "Ingresa tu número celular: " celular
echo "Gracias..."
echo "Procesando datos."
sleep 3
clear
date
echo "Agradecemos tu registro $nombre $apellido."
echo "te pondremos con tus compañeros de $edad años."
echo "enviaremos tu carta de registro a: $direccion, por favor esta atento."
echo "en caso de que no te encuentres $nombre te llamaremos al $celular. Gracias por tu tiempo. " 

Mi resultado del reto

# ! /bin/bash
# Reto2 para solicitar la informacion del usuario
# Autor: Yobriel Castillo - @yleexcst

nombre=""
apellido=""
edad=0

echo "Introduzca sus datos: "
read -p "Nombre: " nombre
echo -e "\n"
read -p "Apellido: " apellido
echo -e "\n"
read -p "Edad: " edad
echo -e "\n"
read -p "Dirección: " direc
echo -e "\n"
echo "Opción enviadas: $*"
echo -e "\n"

echo "Recuperar valores $*"



<code> 
# !/bin/bash
# reto de solicitar datoss del usuario

echo "Porfavor ingrese los siguientes datos"
read -p "Nombre:" name
read -p "Apellido:" lastname
read -p "Edad:" year
read -p "Dirección" address
read -p "Numeros telefonicos" telephone_numbers
echo "Los datos ingresados son:" $name - $lastname - $year - $address - $telephone_numbers

Comparto mi código 😃

# !/bin/bash
# Reto No 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.

nombreRegex='^[A-Z][a-z]{2,10}$'
edadRegex='^[0-9]{2}$'
celularRegex='^[0-9]{10}$'



read -p "¿Cual es tu nombre?: " nombre

while [[ ! $nombre =~ $nombreRegex ]]
do
    read -p "Ingresa un nombre valido: " nombre
done



read -p "¿Cual es tu edad? " edad

while [[ ! $edad =~ $edadRegex ]]
do
    read -p "Ingresa una edad valida: " edad
done



read -p "¿Cual es tu celular? " celular

while [[ ! $celular =~ $celularRegex ]]
do
    read -p "Ingresa un celular valido: " celular
done


echo "Nombre: $nombre"
echo "Edad: $edad"
echo "Celular: $celular"