Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Reto 5

34/43

Lectura

Reto 5:

Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos

...

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

Aportes 71

Preguntas 0

Ordenar por:

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

# !/bin/bash
# Reto 5. Generar un archivo log, escribir dentro de este archivo el usuario, y la fecha de log en formato yyyy_MM_DD_HH_mm_ss
# Autor: Luis Xavier

echo "Generating log file..."
touch log.txt

echo "Registering login..."
user=$USER
date=$(date +%Y_%m_%d__%H:%M:%S)

echo "$user/$date" >> log.txt

sleep 1
echo -e "Login Registered\n"
cat log.txt

No comprendo el reto 😕

Código:

╭─    ~/BashShell    master ?8 ···················································· ✔  21:27:26 
╰─ more reto5.sh
#!/bin/bash
#Reto 1

option=2
result=4

echo "El valor de option es: $option" >> log-option-$(date +%Y%m%d%H%M%S).txt
echo "El valor de result es: $result" >> log-result-$(date +%Y%m%d%H%M%S).txt

Resultado:

-rw-r--r-- 1 mapo mapo    25 Aug 12 21:27 log-option-20200812212723.txt
-rw-r--r-- 1 mapo mapo    25 Aug 12 21:27 log-result-20200812212723.txt

Lo que entendí. Crear un archivo llamado Log+Fecha.log y en ese archivo escribir la información del usuario que accedió al script y la fecha en que lo hizo.

#!/bin/bash
# Reto 5
# Autor Jose Suarez.

fecha=`date +%Y%m%d%H%M%S`
usuario=$(logname)
archivo=log-`date +%Y%m%d%H%M%S`.log

#Crear el archivo
touch $archivo
echo -e "\n"
#Agregar información del usuario
echo "Acceso del usuario: $usuario " >> $archivo
echo -e "\n"
#Agrego la fecha
echo "En la Fecha: $fecha " >> $archivo

#Muestro el archivo por 3 segundos
cat $archivo
sleep 3

Done !

Code:

Result:

```js fecha=`date +%Y%m%d_%H%M%S` echo "Escribiendo a archivo Log.txt" read -p "Escriba la Informacion en el Archivo log: " datos touch log_$fecha.txt echo $datos >> log_$fecha.txt echo "Escribiendo archivo..." sleep 3 echo "Archivo Log Creado!" cat log_$fecha.txt ```
```txt # ! /bin/bash # Reto 5 # Autor: Mario Celis - https://www.linkedin.com/in/mario-alexander-vargas-celis/ option=1 result=2 echo "La opción es: $option y el resultado es: $result" >> log-`date +%Y-%m-%d-%H-%M-%S`.log ```
La solución de ejercicio segun como lo entendi ```txt #!/bin/bash file="log_$(date +'%Y-%b-%d_%H-%M-%S')" read -r -p "Ingresa lo que quieres añadir al archivo: " carreta touch $file && echo "$carreta" >> $file cat $file ```
```txt # !/bin/bash # Reto 05 del curso de programacion Bash Shell # Author: Gerardo Soriano <[email protected]> option=$1 result=$2 date=$(date --iso-8601=seconds) cat <<EOM >> "log-$date.log" Valor de option: $option Valor de result: $result EOM ```
\#!/bin/bash \# Este es un programa que declara dos variables una llamada option, otra llamada result, las inicia \# e imprime sus resultados \# Creado por: Diego Andres Benitez \# Contacto en @xyzdiego option=`hostnamectl` result=`neofetch` dateRegex='^(19|20)(\[0-9]{2})(0\[1-9]|1\[0-2])(0\[1-9]|\[1-2]\[0-9]|3\[0-1])$' echo "Cuál es tu nombre?" read name read -p "$name, introduce tu fecha de nacimiento (en el formato: añomesdia): " age echo -e "\nRegistrando usuario ..." user=$user date=$(date +%Y\_%m\_%d\_\_%H:%M:%S) hoy=`date` segundos\_hasta\_fecha=$(date -d"$age" "+%s") # Esta fecha se da en la hora 00:00:00 segundos\_hasta\_hoy=$(date -d"$hoy" "+%s") diferencia=$((segundos\_hasta\_hoy - segundos\_hasta\_fecha)) \# Este calculo de diferencias se hace basado en la cantidad de segundos transcurridos desde la fecha \# Posix, es decir, el 1 de enero de 1970 horas=$((diferencia / 3600)) minutos=$(( (diferencia - horas\*3600) / 60)) segundos=$((diferencia - horas\*3600 - minutos\*60)) anios=$((horas/(24\*365))) horitas=$((horas - (anios\*24\*365))) dias=$((horitas/24)) hours=$((horitas - (dias\*24))) if \[\[ $age =~ $dateRegex ]]; then printf "Debido a que naciste el %s y hoy es %s, deberías tener alrededor de %d años, %d dias, %d horas, %d minutos y %d segundos\n" "$age" "$hoy" "$anios" "$dias" "$hours" "$minutos" "$segundos" echo "Hola $name, con que tienes $anios años y estas usando un sistema:" echo "$result" else echo "La fecha de nacimiento que ingresaste esta en el formato incorrecto!" fi echo "Generando archivo log..." touch log.txt echo -e "\n$user/$date" >> log.txt sleep 3 echo -e "\nUsuario registrado con éxito" cat log.txt
🤓☝️💻 Con este script guardamos el tiempo de nuestro computador en tiempo unix, un formato universal de tiempo. <https://en.wikipedia.org/wiki/Unix_time> ```c# #!/bin/bash # reto 5 echo "Logging date" if [ -f date.log ]; then echo " date.log already exists, adding new date entry" cat <<EOF >> date.log $(whoami),$(date +%s) EOF echo "---> Entry: '$(whoami),$(date +%s)' added successfully" else echo "date.log does not exist" echo "\nGenerating date log file" echo "$(whoami),$(date +%s)" >> date.log echo "File created successfully" fi cat date.log ls -la *.log ```https://en.wikipedia.org/wiki/Unix\_time
🚀 Solucion con failsafe rupestre ```txt #/bin/bash # reto 5 echo "Logging date" if [ -f date.log ]; then echo " date.log already exists, adding new date entry" cat <<EOF >> date.log $(whoami),$(date +%Y%m%d%H%M%S) EOF echo "---> Entry: '$(whoami),$(date +%Y%m%d%H%M%S)' added successfully" else echo "date.log does not exist" echo "\nGenerating date log file" echo "$(whoami),$(date +%Y%m%d%H%M%S)" >> date.log echo "File created successfully" fi cat date.log ls -la *.log ```
debido a que todas las personas no hacen el reto de la misma manera se puede deducir que no se está entendiendo bien la redacción del reto, quizá esté mal explicado o quizá seamos muy noobs para entender correctamente
Mi solución al reto: ![](https://static.platzi.com/media/user_upload/image-798884db-08d8-423c-b597-c7d2cde29aeb.jpg) Resultado: ![](https://static.platzi.com/media/user_upload/image-1bc31ece-9413-44ed-87eb-9c1d94cd455c.jpg)
Les comparto lo que interprete y hice sobre el enunciado. SI hay algo que interprete o hice mal, háganme lo saber. muchas gracias. ```js #!/bin/bash #Reto 1: #Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos if [[ $# == 2 ]]; then date=$(date "+%Y-%m-%d-%H-%M-%S") fileName="log-$date.log" #Comprobamos si existe el archivo en el directorio actual y procedemos a crearlo o no if [[ -e $fileName ]]; then echo "EL archivo log $fileName ya existe en el directorio actual " else #Creamos el archivo y guardamos la info en el mismo touch $fileName echo "Creando archivo log..." echo "Option=$1, result=$2, fecha_hora=$date" > $fileName sleep 1 clear #mostramos la lista de archivos e imprimimos por consola con while el contenido del archivo creado echo "LISTA DE ARCHIVOS Y DIRECTORIOS:" ls echo -e "\n INFORMACION DEL ARCHIVO Y CONTENIDO" while IFS= read linea do echo "$linea" done < $fileName fi else echo "Cantidad de parametros incorrectos (introducir 2 parametros)" fi ```

Mi reto 5

# !/bin/bash
# Reto 1 Utility Host
# Autor: Ricardo Portillo - @spyderp

option=$1
result=$2
# Get the current date and time
date=$(date +"%Y%m%d%H%S")

if ![ -f "log_UtilityHost.txt" ]; then
 touch log_UtilityHost.txt
fi
texto="El valor de la variable option es: $option"
echo "Reto 1"
echo $texto
echo "$texto -- $date" >> log_UtilityHost.txt
texto="El valor de la variable result es: $result"
echo $texto 
echo "$texto -- $date" >> log_UtilityHost.txt

Mi aporte.

#!/bin/bash
#Reto 5: Creacion de archivo log para cada ejecucion del programa
#Autor: Sergio A. Vargas

rutaAcual=`pwd`
fecha=$(date)
logDate=$(date +"%Y-%m-%d_%H:%M:%S")

echo "Estas en el directorio : $rutaActual"
echo "Esta es la fecha actual $fecha"
echo "Ingrese su nombre: "
read name
echo "Ingrese su edad: "
read age
echo "Te llamas $name y tu edad es $age, fecha de ejecucion $logDate" >> log_$logDate.txt

#!/bin/bash

Programa RETO 5

Realizado por Liliana Palacios

read -n 1 -erp "Ingrese una opción (0-9) : " option
read -n 15 -erp "Ingrese un resultado: " result

usuario=$USER
fecha=$(date “+%Y/%m/%d”)
hora=$(date “+%H:%M:%S”)

fichero="log.txt"
cabecera="usuario Fecha Hora Option Resultado"
if [[ ! -a $fichero ]]; then
echo “$cabecera” > $fichero
fi
echo “$usuario $fecha $hora $option $result” >> $fichero

#!/bin/bash
# Programa RETO 5 , utilityHost.sh
# Declarar dos variables, option y result, inicializarlas
# Modificación añadiendo usuario y fecha
# Y grabándolo en el archivo log

read -n 1 -erp "Ingrese una opción (0-9) : " option
read -n 15 -erp "Ingrese un resultado: " result

# Separador de fields, <tab> 
tab=$(echo -e "\t")
# Usuario activo de sesión
usuario=$USER
# Fecha actual del sistema
fecha=$(date "+%Y/%m/%d")
# Hora actual del sistema
hora=$(date "+%H:%M:%S")

fichero="log.txt"
cabecera="usuario $tab Fecha $tab Hora $tab Option $tab Resultado"
# la opción -a verifica si existe el fichero, ! -a niega la existencia
# si no existe el fichero se crea con la cabecera
if [[ ! -a $fichero ]]; then
    echo "$cabecera" > $fichero
fi
# Se procede a añadir >> el registro con todos los datos  
echo "$usuario $tab $fecha $tab $hora $tab $option $tab $result" >> $fichero
echo "Se ha registrado en $fichero correctamente"

no entinedo el reto, pero con ayuda de los aportes hice esto

echo "Generating log file..."
touch log.log

echo "Registering login..."
user=$USER
date=$(date +%Y_%m_%d__%H:%M:%S)

echo "$user/ $date" >> log.txt

sleep 1
echo -e "Login Registered\n"
  1 # !/bin/bash
  2 # Programa de Reto 4: escribir info solicitada en archivo .log cuyo nombre sera log mas la fecha
  3 # Autor: Jose Luis Nunez
  4
  5
  6 nombre=$(date +"%Y%m%d%H%M%S")
  7 echo "Creacion de nuevo archivo .log con nombre de fecha"
  8
  9 touch "$nombre.log"
 10 echo $1 >> "$nombre.log"
                                               

Mi solución al reto:

# !/bin/bash
# Programa para crear un archivo log en donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: Santiago Muñoz Ruiz

option1=$1
option2=$2
date=`date +'%Y%m%d%H%M%S'`
logname="log$date.txt"

echo "La opción 1 es: $option1"
La opción 1 es:
echo "El opción 2 es: $option2"
El opción 2 es:
touch "$logname"
echo "$option1" >> $logname
echo "$option2" >> $logname

Tenemos en cuenta si existe o no el fichero log.txt ,
si no existe añadimos una cabecera de campos y,
si ya existe, solo añadimos el usario, fecha y la hora.

1 #!/bin/bash
  2 # Autor JRPF - DIC -2022
  3 # Programa reto 5
  4 # grabar la información de usuario y año, mes, día, hora, 
  5 # minutos y segundos, en el fichero log.txt
  6 #
  7 # Añadiendo usuario y fecha a log.txt
  8 
  9 usuario=$USER
 10 fecha=$(date +%Y/%m/%d)
 11 hora=$(date +%H:%M:%S)
 12 fichero="log.txt"
 13 if [ ! -f "$fichero" ]; then
 14     touch "$fichero"
 15     echo -e "\tUsuario\tfecha\t\thora" > $fichero
 16 fi
 17 echo -e "\t$usuario \t $fecha \t $hora" >> $fichero 

# !/bin/bash

# Reto: Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos

# creacion del archivo
dt=$(date '+%d_%m_%YT%H_%M_%S')
echo "date is $dt"
fileName="log_$dt.txt"
echo "fileName is $fileName"
touch $fileName
echo "mensaje que se desea imprimir: $1"
echo "$1" > $fileName
#!/bin/bash
#reto1
#autor: Adrian

#declarar dos variables
option=$1
result=$2

#imprimir argumentos de la variable con la fecha y gravarlos en un archivo log.txt
echo -e "\n$option\n$(date)" >> log.txt
echo -e "\n$result\n$(date)" >> log.txt

Mi solución:
Código:

#!/bin/bash
# Challenge 1
# Develop a program called utilityHost.sh, inside it we are going to declare two variables, one called 'option', another called result, we are going to initialize them and print their values.

# Challenge 2
# Modify the utilityHost.sh file to write the requested information to a log file whose name will be log where yyyy represents the year, MM the month, DD the day, HH the hour, mm the minutes and SS the seconds.

option="CODE FORMAT"
result="UTF-8"

echo "The option selected is: $option and the result is: $result" > log.txt
echo $(date '+%y-%m-%d %H:%M:%S') >> log.txt

Terminal:

Mi aporte:

# !/bin/bash
# Reto 5: Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos

#Variables
date=`date +%Y%m%d_%H%M%S`
logFile=log_$date.log
option='Reto 5'
result='Bash Shell'
user=$(logname)

#Crear Archivo
echo "Generando log..."
sleep 1
clear
touch $logFile

#Escribiendo información
echo "Terminando el $option con $result." >> $logFile
echo "Realizado por el usuario: $user" >> $logFile
echo "Fecha de creación: `date +%Y-%m-%d`" >> $logFile

#Mostrar Log Creado
echo "------------------------------------------------------"
echo "El log $logFile fué creado exitosamente"
echo "------------------------------------------------------"
echo ""
echo "---------Se guardo la siguiente información-----------"
echo ""
cat $logFile
echo ""
echo "------------------------------------------------------"
sleep 2
 #!/bin/bash
  #Reto5
  #Autor: iGera97
 
  option=0
  result=""
 
  while [[ $option -le 0 || $option -gt 3 ]]
  do
  read -n1 -p "Ingresar una opción entre 1-3: " option
  echo -e "\n $option"
  done
 
  case $option in
      1)
          result="Escogiste la opción 1, ganaste un mueble troncoso";;
      2)
          result="Escogiste la opción 2, ganaste un perrito";;
      3)
              result="Escogiste la opción 3, perdiste";;
 esac
 echo $result
 echo -e "Crear archivo"
 fecha=$(date '+%Y%m%d_%H%M%S')
 touch $fecha.log
 echo -e "Opción: $option\nResultado: $result" >> $fecha.log
 cat $fecha.log

Reto 5

#!/bin/bash
# Reto 5
#Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log 
#cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: julian lamadrid, jlamadrid, litocruz

#declaracion variables
option=$2
comando=$1
cantidad=$#

echo "Este script recibe 2 parametros, el primero es el comando y el segundo un argumento antecedido por un -."
echo "El resultado sera guardado en un archivo log creado con la fecha actual."

# validacion de cantidad opciones
if [ "$cantidad" -lt 2 ] ; then
  echo "uso del script es el siguiente $0 comando -option"
  exit
fi

# validacion del guion delante argumento
echo "$option" | [ ! $(grep "^-") ] && echo "Debe ingresar el argumento con guion(-) delante; exit 1"

file="log-$(date +%Y%m%d%H%m%S).log"

echo -e "Log de Reto 5\n" >> $file
echo "$(date +%Y%m%d%H%m%S) --- comando: $comando  opcion: $option" >> $file
echo -e "Resultado:\n $($comando $option)" >> $file

echo "Nombre archivo: $file"
 

#!/bin/bash

Author: Rogger Caicedo

Registro de ejecución y almacenamiento de la información en un log.

read -p "Escriba “S o s” para registrarse: " option
Val_selecc_option=’^S|s$’

if [[ $option =~ $Val_selecc_option ]]; then
read -p "Ingrese sus Nombres: " Name
echo "… "; sleep 1

   Date=`date +%Y%m%d%H%M%S`

   echo "Done."; sleep 1
   echo "Registered!"

 echo "Date: $Date | Name: $Name" >> tmp.log

else

 echo "No se realizan acciones!"

fi

Comparto mi resolución

#!/bin/bash
#Reto 5


touch log.txt

echo "Registering login"
user=$USER
date=$(date +%Y_%m_%d__%H:%M:%S)

echo "$user/$date" >> log.txt

echo -e "Daros guardados correctamente"

Mi ejercicio

echo "REGISTRO DE HOST LOGS" | lolcat
touch log.txt
chmod -x log.txt

year=""; month=""; day=""; hours=""; minutes=""; seconds=""

read -p "Inserte un año en formato yyyy: " year
read -p "Inserte una mes en formato mm: " month
read -p "Inserte una dia en formato dd: " day
read -p "Inserte una hora en formato hh: " hours
read -p "Inserte una minutos en formato mm: " minutes
read -p "Inserte una segundos en formato ss: " seconds

verificador=0

if [ $year -gt 2022 ]; then
    echo "el año no puede ser superior a 2022" | lolcat
    verificador=$(( verificador + 1 ))
else
    echo "registrando año..." | lolcat
fi

if [ $month -gt 12 ]; then
    echo "el numero de mes no puede ser superior a 12" | lolcat
    verificador=$(( verificador + 1 ))
else
    echo "registrando mes..." | lolcat
fi

if [ ${#day} -gt 2 ] || [ ${#day} -lt 2 ]; then
    echo "la longitud de dia debe ser 2 caracteres" | lolcat
    verificador=$(( verificador + 1 ))
else
    echo "registrando dia..." | lolcat
fi

if [ $verificador -ge 1 ]; then
    echo "No se pudo guardar la informacion"
else
    echo "[ $day $month $year - $hours:$minutes:$seconds ]" >> log.txt
    echo "informacion guardada en archivo: log.txt" | lolcat
fi

Mi reto:

#!/bin/bash
#Escribir archivo log yyyyMMDDHHmmSS
#Autor: Damián Lores -@Drami24

option=2
result=4
fecha=$(date +%Y%m%d%H%M%S)

echo "Escribir fecha en log.txt"
echo "Option: $option, Result: $result" >> log$fecha.txt
#!/bin/bash
#Programa para insertar en el archivo log.txt YYYYMMDD, HHmmss
#Autro: Jorge Cl



echo "Reto 5 Creación de archivo log"

touch log.txt

cat <<EOM> log.txt
$(date +%Y%m%d-%H:%M:%S)
EOM
echo -ne '#####                     (33%)\r'
sleep 1
echo -ne '#############             (66%)\r'
sleep 1
echo -ne '#######################   (100%)\r'
echo -ne '\n'
echo -e "\nCREADO CORRECTAMENTE"
echo "Valor ingresado $(cat log.txt)" 

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


# !/bin/bash

#RETO: Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD ela, HH la hora, mm los minutos y SS los segundos.

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





echo "RETO 5: Login"

read -e -p "Usuario: " user
read -s -p "Contraseña: " password

date=`date +"%Y-%m-%d"`
hour=`date +"%T"`

echo "Usuario: $user   ;    Fecha: $date   ;  Hour: $hour" >> log.txt

Resultado en log.txt

Reto 5

# !/bin/bash
# Reto 5:
# Programa que guarda info en un archivo llamado log

name=""
birthday=""
email=""
logPath="$HOME/shellCourse/log.txt"

echo "Vamos a guardar tus datos"
read -p "Introduce tu nombre: " name
read -p "Introduce tu fecha de cumpleaños[dd/mm/yyyy]: " birthday
read -p "Introduce tu email: " email

if [ -d $logPath ]; then
    cat <<EOM>>$logPath
    Nomre: $name
    Cumpleaños: $birthday
    Email: $email
EOM
else
    touch "log.txt"
    cat <<EOM>>$logPath
    Nomre: $name
    Cumpleaños: $birthday
    Email: $email
EOM
fi

Reto # 5 😃

#!/bin/bash
# RETO # 5
# Modificar el archivo utilityHost.sh para escribir la información solicitada,
# a un archivo de log cuyo nombre será log donde yyyy representa el año,
# MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: steven - correo@corrreo

#Variables
OPTION=0
CLEAN=""
FLAG=1

# Menú del script
MENU=("Comando ps aux"\
        "Comando df -th"\
        "Salir")
# Opciones del script
OPTIONS=("ps aux"\
        "sudo df -Th"\
        "exit 0")

while :
do
    # Limpiar la pantalla
    if [[ $FLAG == 1 ]];then
        clear
    fi
    FLAG=0
    # Desplegar el menú de opciones
    echo "-------------------------------------------"
    echo "                RETO # 5                   "
    echo "-------------------------------------------"
    echo "             MENÚ PRINCIPAL                "
    echo "-------------------------------------------"
    LENGTH_ARRAY=${#MENU[@]}
    for ((item=0;item<=$LENGTH_ARRAY-1;item++))
    do
        count=$((item + 1))
        echo "$count. ${MENU[item]}"
    done
    # Leer la opción del usuario.
    read -n 1 -p "Ingrese una opción del menú > " OPTION
    echo -e "\n"
    REAL_OPTION=$(($OPTION - 1))
    # Imprimir la opción que selecciono el usuario.
    echo "${MENU[$REAL_OPTION]}"
    sleep 1
    COMMAND=${OPTIONS[$REAL_OPTION]}
    eval $COMMAND
    echo -e "\n"
    # Leer la decisión del usuario.
    read -n 2 -p "Deseas guadar los datos en un log [SI|NO] > " SAVE
    PARSE_LOWER_CASE_SAVE="${SAVE,,}"
    if [ $PARSE_LOWER_CASE_SAVE == "si" ]; then
        DATE=$(date +"%Y_%m_%d_%H_%M_%S")
        NAME_FILE="log_$DATE.log"
        eval $COMMAND >> $NAME_FILE
        echo -e "\n"
        echo "Archivo creado --> $NAME_FILE"
    fi
    echo -e "\n"
    # Leer la decisión del usuario.
    read -n 2 -p "Deseas limpiar la consola [SI|NO] > " CLEAN
    echo -e "\n"
    sleep 1
    PARSE_LOWER_CASE="${CLEAN,,}"
    if [ $PARSE_LOWER_CASE == "si" ]; then
        FLAG=1
    fi
done

Script reto5_sh

# !/bin/bash
# Programa para guardar log de nuevo usuario

# Usar source para poder importar variables
source ./utilityHost.sh

currentDate=`date +%Y_%m_%dT%H:%M:%S`
fileName="log_$currentDate"

cat <<EOM >$fileName
# Usuario registrado
Date: $currentDate
        Name User: $name
        Edad User: $age
EOM

Script utilityHost_sh

# !/bin/bash
# Programa para guardar log de nuevo usuario

echo "Hola, cuál es su nombre?"
read name
echo "Qué edad tienes?"
read age
echo "Hola $name, nos complace tener una persona de $age años"

export name;
export age;

Comparto mi código 😃

# ! bin/bash
# Reto No. 5

archivo=log-`date +%Y%m%d%H%M%S`.txt
read -p "Welcome, ¿What is your firstname?: " FIRSTNAME
read -p "And your lastname?: " LASTNAME

touch $archivo

echo "Hello. Your name is $FIRSTNAME $LASTNAME :)" >> $archivo
echo "Se ha creado un nuevo archivo llamado $archivo"

Asi entendi el reto, espero este bien

#--------------------------------------

! /bin/bash

#Reto5 UtilityHost

nomFile=log$(date +"%Y%m%d%H%M%S").txt
pathLogs=“logUtil”

echo "Leyendo UtilityHost…"
catContent=cat utilityHost.shlog

if [ -d $pathLogs ]; then
echo "El directorio $pathLogs existe"
else
echo -e "\nCreando Carpeta…"
mkdir -m 755 $pathLogs
fi

echo -e "\nEntrando a la Carpeta…"
cd $pathLogs

echo -e "\nGenerando Respaldo…"
touch $nomFile

echo -e "\nEscribiendo Archivo…"
echo $catContent >> $nomFile

Aqui esta mi reto: Basicamente utilice el mismo codigo que utilice en el Reto#3. Lo unico que cambia son las lineas de codigo que estan relacionadas con el Reto#5. Al principio creo un archivo de nombre log_fecha_hora.txt y lo muevo a un directorio de nombre logs_reto5/ A medida de que el usuario se mueve e interactua con el Menu de Opciones simplemente estoy agregando registros sobre las operaciones que realiza y las voy escribiendo en el archivo de Log creado al principio.

# ! /bin/bash
 # Programa para cumplir con el reto#3
 #Arnoldo Alvarez
 
 opcion=""
 numA=0
 numB=0
 numC=0
 telRegex= '^\(?([0-9]{3})\)?([0-9]{3})[.]?([0-9]{4})$' #Solo acepta el formato telefonico (xxx)xxx.xxxx Ej:(706)612.4602
 telRegex2='^\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]*\)/(\1) \2 . \3/$'
 pathArchivo=""
 aritmetica=""
 funcion=""
 phone=""
 resp=""
 FILE=log.txt
 DATE=`date +%y%m%d`
 TIME=`date +%H%M%S`
 
 #Se crea un archivo .log con fecha y hora y se mueve a un directorio de logs_reto5
 NEWFILE=${FILE%.*}_`date +%Y%m%d`_`date +%H%M%S`.${FILE#*.}
 touch $NEWFILE
 mv $NEWFILE logs_reto5/
  #echo "El archivo $NEWFILE fue creado con exito"
while :
 do
     clear
     echo "archivo: $NEWFILE"
 echo "Las opciones son las siguientes\n
         1.- Para Saber como evitar CoronaVirus
         2.- Realizar funciones numericas
         3.- Para verificar formato de numero telefonico
         4.- Para verificar un directorio
         5.- Ver contenido de un Archivo
         6.- salir"
 
 echo -e "\n"
 read -n1  -p "Introduzca su Opcion: " opcion
 
 case $opcion in
     "1") echo -e "\nLo que debes hacer es lo siguiente:
                     a) Lavarse las manos frecuentemente.
                     b) Toser o estornudar al interior de  tu codo.
                     c) No tocarse la cara.
                     d) Mantener cierta distancia social.
                     e) Quedarse voluntariamente en casa."
 
                     echo "$DATE-$TIME --- Instrucciones Consultadas" >> logs_reto5/$NEWFILE
 sleep 5
          ;;
 
     "2") read -p "Introduzca el numero A: " numA
          read -p "Introduzca el numero B: " numB
          echo    "Funciones Aritmeticas disponibles
                     1.- Sumar
                     2.- Multiplicar
                     3.- Dividir"
          echo -e "\n"
          read -p "Escoja la funcion Aritmetica: " aritmetica
 
          case $aritmetica in
 
               "1")  funcion="suma"
                     numC=$((numA + numB));;
               "2")  funcion="Multiplicacion"
                    numC=$((numA * numB));;
               "3")  funcion="Division"
                     numC=$((numA / numB));;
                 *)  funcion="Funcion No definida"
                     echo "Opcion incorrecta";;
          esac
 
             echo "Resultado Matematico de la $funcion: $numC "
             echo "$DATE-$TIME --- Usuario realiza funcion matematica $funcion:$numC" >> logs_reto5/$NEWFILE
             sleep 5
             ;;
 "3")    echo -e "\n"
             echo "$DATE-$TIME --- Usuario escoge chequear formato de numero telefonico" >> logs_reto5/$NEWFILE
             read -p "Ingrese numero telefonico: " telefono
 
             if [[ $telefono =~ $telRegex2 ]]; then
                 echo "Formato correcto dentro de los EEUU"
             else
             phone=$telefono
             plainPhone=$(echo $phone | sed "s/[()-.]//g")
             echo "Formato Incorrecto dentro de los EEUU"
             read -n1 -p "Convertir al formato (123)456.7890 s/n:  "  resp
             echo  -e "\n"
              if [ $resp = "s" ]; then
               formatedPhone2=$(echo $plainPhone | sed "s/\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]*\)/(\1) \2 . \3/")
               echo "Numero convertido: $formatedPhone2 "
               echo "$DATE-$TIME --- Usuario cambia formato del Numero Telefonico $telefono" >> logs_reto5/$NEWFILE
              else
 
                  echo "$DATE-$TIME --- Usuario responde NO para cambiar formato de  $telefono" >> logs_reto5/$NEWFILE
                  echo "Volviendo al Menu Principal..."
              fi
             fi
 
             sleep 5
             ;;
 
 "4") echo -e "\n"
          read -p "Ingrese la ruta de un directorio: " dirPath
             if [[ -d $dirPath  ]]; then
 
                 echo "$DATE-$TIME --- Usuario consulta satisfactoriamente el directorio $dirPath" >> logs_reto5/$NEWFILE
                 echo "El directorio $dirPath SI Existe"
 
                 else
                     echo "El directorio NO Existe o NO es un directorio"
                     echo "$DATE-$TIME --- Usuario No encuentra $dirPath" >> logs_reto5/$NEWFILE
             fi
 
             sleep 5
 
         ;;
 "5")echo -e "\n"
          read -p "Ingrese la ruta del archivo: " filePath
          if [[ -e $filePath  ]]; then
              echo "$DATE-$TIME --- Usuario consulta el archivo $filePath" >> logs_reto5/$NEWFILE
              cat $filePath
          else
              echo "No se encuentra el archivo o Nombre de archivo Incorrecto"
              echo "$DATE-$TIME --- Usuario No encuentra $filePath" >> logs_reto5/$NEWFILE
          fi
          sleep 6
 
          ;;
 
     "6")    echo -e "\n"
             echo -e "Saliendo..."
             echo "$DATE-$TIME --- Usuario sale de la aplicacion" >> logs_reto5/$NEWFILE
             exit 0
 
             ;;
 
       *) echo "Opcion Incorrecta, Lo sentimos"
 esac
 done


genial

touch utilityHost.sh | date >> utilityHost.sh

#! /bin/bash                                                                                                                                                                                                      option=""                                                                                                                                                                                                         while :                                                                                                                                                                                                           do                                                                                                                                                                                                                #Limpieza de pantalla                                                                                                                                                                                             clear                                                                                                                                                                                                             echo "_______________________"                                                                                                                                                                                    echo "    Menu de opciones   "                                                                                                                                                                                    echo "_______________________"                                                                                                                                                                                    echo -e "\n"                                                                                                                                                                                                      echo "1. Instalar Postgres"                                                                                                                                                                                       echo "2. Desinstalar Postgres"                                                                                                                                                                                    echo "3. Crear un Backup"                                                                                                                                                                                         echo "4. Restaurar Backup"                                                                                                                                                                                        echo "5. Salir"                                                                                                                                                                                                   echo -e "\n"                                                                                                                                                                                                      read -n1 -p "Elija una Opcion :" option                                                                                                                                                                           echo -e "\n"                                                                                                                                                                                                                                                                                                                                                                                                                            case $option in                                                                                                                                                                                                       1)                                                                                                                                                                                                                   echo "Instalando Postgres...."                                                                                                                                                                                    if [ -f  ~/logs/instalandoPostgres.log ]; then                                                                                                                                                                       echo "El fichero ya existe...>> Agregando log "                                                                                                                                                                   echo "$(date '+%F %H %M %S')  $(whoami)"  >> ~/logs/instalandoPostgres.log                                                                                                                                        sleep 3                                                                                                                                                                                                        else                                                                                                                                                                                                                 echo "el Fichero no existe > creando fichero "                                                                                                                                                                    echo "$(date '+%F %H %M %S')  $(whoami)" > ~/logs/instalandoPostgres.log                                                                                                                                          sleep 3                                                                                                                                                                                                        fi                                                                                                                                                                                                                ;;                                                                                                                                                                                                                                                                                                                                                                                                                               2)                                                                                                                                                                                                                   echo "Desinstalando Postgres"                                                                                                                                                                                     date '+%F %H %M %S' > ~/logs/DesinstalandoPosgtres.log                                                                                                                                                            sleep 3                                                                                                                                                                                                           ;;                                                                                                                                                                                                                                                                                                                                                                                                                               3)                                                                                                                                                                                                                   echo "Creando respaldo "                                                                                                                                                                                          date '+%F %H %M %S'> ~/logs/SacarRespaldo.log                                                                                                                                                                     sleep 3                                                                                                                                                                                                           ;;                                                                                                                                                                                                                                                                                                                                                                                                                               4)                                                                                                                                                                                                                   echo "Restaurando Backup "                                                                                                                                                                                        date '+%F %H %M %S' > ~/logs/RestaurandoRespaldo.log                                                                                                                                                              sleep 3                                                                                                                                                                                                           ;;                                                                                                                                                                                                                                                                                                                                                                                                                               5)                                                                                                                                                                                                                   echo "Saliendo "                                                                                                                                                                                                  exit 0                                                                                                                                                                                                            ;;                                                                                                                                                                                                         esac                                                                                                                                                                                                          done                   
! /bin/bash
 
op=0
flag=0

while :
do
  if [ $flag == 0 ]; then
      for ((i=0;i<4;i++))
        do
        clear

        echo "█ █ █ █ █ █ █ █ █ █ █ █ █ █"
        echo " █ █      CARGANDO     █ █ "
        echo "█ █       PROGRAMA      █ █"
        echo " █ █ █ █ █ █ █ █ █ █ █ █ █ " 

        sleep 0.4
        clear

        echo " █ █ █ █ █ █ █ █ █ █ █ █ █ "
        echo "█ █       CARGANDO      █ █"
        echo " █ █      PROGRAMA     █ █ "
        echo "█ █ █ █ █ █ █ █ █ █ █ █ █ █" 

        sleep 0.4
        clear
      done
      echo "Acción : YYYY/MM/DD - HH:mm -> usuario" >> log.txt
      flag=1
    else
        clear
        echo "████████████████████████████████████████"
        echo "█ █ █ █ █ █  MENU PRINCIPAL  █ █ █ █ █ █"
        echo "████████████████████████████████████████"
        echo "█1. Instlar Postgres                   █"
        echo "█2. Desintalar Postgres                █"
        echo "█3. Sacar un respaldo                  █"
        echo "█4. Restaurar respaldo                 █"
        echo "█5. Salir                              █"
        echo "████████████████████████████████████████"
        echo ""
        read -n1 -p "Ingrese una opcion [1-5]: " op

        echo -e "\n"
        
        case $op in
            1)
              #mensaje de la accion
              clear
              echo " Instalando ."  
              sleep 0.5
              clear
              echo " Instalando .."
              sleep 0.5
              clear
              echo " Instalando ..."
              sleep 0.5
              clear

              #escribiendo informacion en log
              echo "Instalación : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
              ;;
            2)
              #mensaje de la accion
              clear
              echo " Desinstalando ."  
              sleep 0.5
              clear
              echo " Desinstalando .."
              sleep 0.5
              clear
              echo " Desinstalando ..."
              sleep 0.5
              clear

              #escribiendo informacion en log
              echo "Desintalación : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
              ;;
            3)
              #mensaje de la accion
              clear
              echo " Respaldando ."  
              sleep 0.5
              clear
              echo " Respaldando .."
              sleep 0.5
              clear
              echo " Respaldando ..."
              sleep 0.5
              clear

              #escribiendo informacion en log
              echo "Respaldando : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
              ;;
            4)
              #mensaje de la accion
              clear
              echo " Restaurando ."  
              sleep 0.5
              clear
              echo " Restaurando .."
              sleep 0.5
              clear
              echo " Restaurando ..."
              sleep 0.5
              clear

              #escribiendo informacion en log
              echo "Restaurando : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
              ;;
            5)
              echo "    Hasta Luego"
              sleep 2
              break;
              ;;
        esac
    fi
done```

DONE
entendi el reto cuando llegue al reto 6

  1 #! /bin/bash
  2
  3 option=0
  4 ini=0
  5
  6 while :
  7 do
  8     if [ $ini == 0 ]; then
  9         for ((i=0;i<3;i++))
 10         do
 11             clear
 12             echo"███████████████████████████"
 13             echo"███████▀▀▀░░░░░░░▀▀▀███████"
 14             echo"████▀░░░░░░░░░░░░░░░░░▀████"
 15             echo"███│░░░░░░░░░░░░░░░░░░░│███"
 16             echo"██▌│░░░░░░░░░░░░░░░░░░░│▐██"
 17             echo"██░└┐░░░░░░░░░░░░░░░░░┌┘░██"
 18             echo"██░░└┐░░░░░░░░░░░░░░░┌┘░░██"
 19             echo"██░░┌┘     ░░░░░     └┐░░██"
 20             echo"██▌░│       ░░░       │░▐██"
 21             echo"███░│      ░░ ░░      │░███"
 22             echo"██▀─┘░░░░░░░   ░░░░░░░└─▀██"
 23             echo"██▄░░░    ░░   ░░    ░░░▄██"
 24             echo"████▄─┘   ░░░░░░░   └─▄████"
 25             echo"█████░░  ─┬┬┬┬┬┬┬─  ░░█████"
 26             echo"████▌░░░ ┬┼┼┼┼┼┼┼  ░░░▐████"
 27             echo"█████▄░░░└┴┴┴┴┴┴┴┘░░░▄█████"
 28             echo"███████▄░░░░░░░░░░░▄███████"
 29             echo"██████████▄▄▄▄▄▄▄██████████"
 30             echo"███████████████████████████"
 31             echo"LOADING...LOADING...LOADING"
 32             sleep 0.3
 33             clear
 34             echo"███████████████████████████"
 35             echo"███████▀▀▀░░░░░░░▀▀▀███████"
 36             echo"████▀░░░░░░░░░░░░░░░░░▀████"
 37             echo"███│░░░░░░░░░░░░░░░░░░░│███"
 38             echo"██▌│░░░░░░░░░░░░░░░░░░░│▐██"
 39             echo"██░└┐░░░░░░░░░░░░░░░░░┌┘░██"
 40             echo"██░░└┐░░░░░░░░░░░░░░░┌┘░░██"
 41             echo"██░░┌┘▄▄▄▄▄░░░░░▄▄▄▄▄└┐░░██"
 42             echo"██▌░│██████▌░░░▐██████│░▐██"
 43             echo"███░│▐███▀▀░░▄░░▀▀███▌│░███"
 44             echo"██▀─┘░░░░░░░▐█▌░░░░░░░└─▀██"
 45             echo"██▄░░░▄▄▄▓░░▀█▀░░▓▄▄▄░░░▄██"
 46             echo"████▄─┘██▌░░░░░░░▐██└─▄████"
 47             echo"█████░░▐█─┬┬┬┬┬┬┬─█▌░░█████"
 48             echo"████▌░░░▀┬┼┼┼┼┼┼┼┬▀░░░▐████"
 49             echo"█████▄░░░└┴┴┴┴┴┴┴┘░░░▄█████"
 50             echo"███████▄░░░░░░░░░░░▄███████"
 51             echo"██████████▄▄▄▄▄▄▄██████████"
 52             echo"███████████████████████████"
 53             echo".....LOADING.....LOADING..."
 54             sleep 0.3
 55             clear
 56         done
 57         ini=1
 58     else
 59         clear
 60         echo"_________________________________________"
 61         echo"             MENU PRINCIPAL              "
 62         echo"_________________________________________"
 63         echo "1. Instlar Postgres"
 64         echo "2. Desintalar Postgres"
 65         echo "3. Sacar un respaldo"
 66         echo "4. Restaurar respaldo"
 67         echo "5. Salir"
 68
 69         read -n1 -p "Ingrese una opcion [1-8]:    " option
 70
 71         echo-e"\n\n"
 72
 73         case $option in
 74             1)
 75                 echo -e "Instalando"
 76                 echo "Instalacion completada | usuario $(whoami) | $(date +'    %d/%m/%Y %H:%M')" >> ./log_instalacion.txt
 77                 sleep 2
 78                 ;;
 79             2)
 80                 echo "Desintalando"
 81                 echo "Desinstalacion completada | usuario $(whoami) | $(date     +'%d/%m/%Y %H:%M')" >> ./log_desinstalacion.txt
 82                 sleep 2
 83                 ;;
 84             3)
 85                 echo "Respaldando"
 86                 echo "respaldo completado | usuario $(whoami) | $(date +'%d/    %m/%Y %H:%M')" >> ./log_respaldo.txt
 87                 sleep 2
 88                 ;;
 89             4)
 90                 echo "Restaurando"
 91                 echo "restauracion completada | usuario $(whoami) | $(date +    '%d/%m/%Y %H:%M')" >> ./log_restauracion.txt
 92                 sleep 2
 93                 ;;
 94             5)
 95                 echo "Saliendo"
 96                 echo "usuario $(whoami) salio del sistema | $(date +'%d/%m/%    Y %H:%M')" >> ./log_usuario.txt
 97                 exit 0
98                 ;;
99         esac
100     fi
101 done
<code>
#!/bin/bash
##Modificar archivo utiliHost.sh para escribir info en un log cuto nombre sera log
#donde yyyy año MM mes DD dia HH hora mm munitos SS segundos
#Autor: chichocoria

fechahora=$(date +%Y-%m-%d_%H%M%S)
touch prelog.log

option="Eligió la opcion correcta"
result="El resultado va a /dev/null"

echo $option >> prelog.log
echo $result >> prelog.log
echo -e "\nMostar los datos en el archivo .log"
cat prelog.log
##renombra archiv prelog.log con la fechahora
mv prelog.log $fechahora.log
echo -e "\nLista para mostrar el archivo log"
ls -lah | grep *.log


#!/bin/bash
# Programa para resolver el reto 5
# Autor: Juan Pablo @JPJimenezE

option=1
result="Resultado de la opción 1"
logFile=reto5."$(date +%Y%m%d_%H%M%S)".log

echo "La opcion es: $option" > $logFile
echo -e "El resultado es: $result" > $logFile

# Comprobar la escritura en el log
echo -e "\n# Contenido del archivo de log: $logFile"
cat $logFile

#!/bin/bash
option="VariableOption"
result="VariableResult"
fecha=$(date +"%F_%H")
echo "El valor de option: $option" > logOption_$fecha.txt
echo "El valor de result: $result" > logResult_$fecha.txt

Reto 5

#!/bin/bash

option="primer reto"
result="en Platzi"

salida="Este es mi $option $result !!"

echo $salida >> $(date +"%Y_%M_%d_%h_%m_%s").log

Reto

#!/bin/bash
#Reto

if [ $# -ne 1 ]; then
    echo "Ingrese solo un parametro de observación entre comillas para el log"
    exit
fi

echo $1 >> $(date +%Y%m%d%H%M%S).log

#!/bin/bash
#Programa realizada para el Reto 5 del curso de programación en Bash. 
#Crea un archivo con el formato pedido y escribe en él el contenido de las variables option y result

option="Dentro de tu ciudad existe otra ciudad"
result="que solo él conoce"

touch $(date +"%Y_%M_%d_%h_%m_%s").log
echo $option >> $(date +"%Y_%M_%d_%h_%m_%s").log
echo $result >> $(date +"%Y_%M_%d_%h_%m_%s").log
# !/bin/bash
# Programa que declara dos variables e imprime su resultado

option=5
result="Hello world"

echo "El resultado del programa es Option: $option y Result: $result"

touch $(date +"%Y_%M_%d_%h_%m_%s").log
echo $option >> $(date +"%Y_%M_%d_%h_%m_%s").log
echo $result >> $(date +"%Y_%M_%d_%h_%m_%s").log

#!/bin/bash
date=date +%Y%m%d%H%M%S
opcion=""
log="log-$date.log"
echo -e "1)Procesos Actuales"
echo -e "2)Memoria Disponible"
echo -e "3)Espacio en Disco"
echo -e "4)Información de Red"
echo -e "5)Variables de Entorno Configuradas"
echo -e "6)Información Programa"
echo -e “7)Backup información”

read -n1 -p “Ingrese una opción:” opcion
echo “”

case $opcion in
1) ps aux > ps-$log && cat $PWD/$log ;;
2) free > mem-$log && cat $PWD/
$log;;
3) df -h > disk-$log && cat $PWD/$log ;;
4) ip a > net-$log && cat $PWD/
$log ;;
5) env > env-$log && cat $PWD/$log ;;
6) read -p “Indique un programa: " pg
echo”"
whereis $pg > pg-$log && cat $PWD/
$log
;;
7) read -p “indique ruta o archivo a respaldar:” ruta
tar -zcvf backup-$date-.tar.gz $ruta > back-$log && cat $PWD/*$log
;;
*)
echo “opcion no valida”
;;
esac

No entendi el reto pero lo que hice fue crear un archivo con nombre “log.log” y cada que se ejecuta el código escribe en dicho archivo quien accedió y a que hora fue, además de la opción de escribir un mensaje extra.

# !/bin/bash
# Reto 5: crear archivo log
# Autor: Adan Galicia

usuario=$(logname)
fecha=$(date +"%Y-%m-%d %H:%M:%S")
archivo=~/log.log

if [ -f $archivo ]; then
    echo -e "\nAccedió el usuario: $usuario el día $fecha:\n\n  Mensaje:" >> $archivo
    cat <<EOM >> $archivo
        $1
EOM

else
    touch $archivo
    echo -e "Accedió el usuario: $usuario el día $fecha:\n\n  Mensaje:" >> $archivo
    cat <<EOM >> $archivo
        $1
EOM
fi

Listo

Al ver el reto 6 pude entender mas o menos a lo que este reto se refiere.
Mi script crea un archivo de registro en el momento en el que se ejecuta y adjunta al registro cada opción que se seleccione del menu junto con la hora, minutos y segundos en el que fue ejecutada la instrucción; es importante aclarar que las comillas dobles son necesarias para agrupar el comando para pasar la salida del mismo al archivo respetando los saltos de linea: echo "$(command)" >> file

#!/bin/bash
option=0
entries=("Procesos Actuales" "Memoria Disponible" "Espacio en Disco" "Informacion de Red" "Variables de Entorno Configuradas" "Informacion Programa" "Backup Informacion" "Salir")

logFile="log-$(date +%Y%m%d-%H%M%S).log"
echo -e "Inicio del registro\n$(date)" >> $logFile
while :; do
    clear && echo -e "\t\e[1;33mMENU\e[0m"
    for i in ${!entries[@]}; do
        echo -e "\e[1;32m$((i+1)). ${entries[$i]}\e[0m"
    done
    read -p "Ingrese una opcion y presione ENTER [1-8]> " option
    
    case $option in
    1)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo "$(wc -l <<< $(ps axch -o cmd))" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    2)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo "$(free -h | awk 'FNR == 2 {print "Memoria Libre: "$3"\nMemoria Disponible: "$6}')" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    3)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo "$(df -h /home /)" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    4)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo "$(ip -4 route ls | grep default)" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    5)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo "$(printenv)" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    6)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo "$(bash --version)" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    7)  clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
        echo -e "\e[1m\e[31mH\e[32mE\e[33mL\e[34mL\e[35mO\e[0m" >> $logFile
        echo && read -sp "Presione ENTER para volver al menu..."
        ;;
    8)  echo "ADIOS..." && sleep 1;
        echo -e "\nFin del registro...\n$(date)" >> $logFile
        clear && break
        ;;
    esac
done

echo "You left!"
exit 0
#!/bin/bash
# Challenge #1: Creating variables and·printing·their·values on a log file with the following format YYYYmmddHHMMSS.log

option="Holmes"
result=30

fileName=`date +%Y%m%d%H%M%S`

echo "Option: $option, Result: $result" >> "$fileName.log"

MI RETO:
cp utilityHost.sh RETO5.sh
vim RETO5.sh

<h1>!/bin/bash</h1> <h1>RETO5</h1> <h1>Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será “log”, donde:</h1> <h1>yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos, SS los segundos</h1> <h1>Autor: Paul Manrique</h1> <h1>Declaramos 3 variables</h1>

nombre="“
result=”“
fecha=”"

read -p “Ingresar NOMBRE Usuario:” nombre
read -p “Ingrese nombre backup:” result
echo -e "\nNombre Usuario: $nombre "
echo -e “\nNombre del Backup es: $result”

<h1>Procederemos a utilizar en orden lo solicitado, usando el comando “date +”</h1> <h1>yyyy representa el año = %Y</h1> <h1>MM el mes = %m</h1> <h1>DD el día = %d</h1> <h1>HH la hora = %H</h1> <h1>mm los minutos = %M</h1> <h1>SS los segundos = %S</h1>

#Crearemos el archivo “.log” llenando los datos con:
#YYYY_MM_DD_HH_mm_ss
touch $(date +"%Y_%m_%d_%H_%M_%S").log

<h1>Pasaremos 3 datos por seguridad, dentro del archivo creado anteriormente:</h1> <h1>Nombre Usuario</h1> <h1>Nombre Backup</h1> <h1>Fecha y Hora en que se creo el archivo, y asi tenemos un respaldo en caso de que se modifique el nombre original del log.</h1>

fecha=$(date +"%A-%d-%B-%Y-%k-%M-%S")
echo $nombre >> $(date +"%Y_%m_%d_%H_%M_%S").log
echo $result >> $(date +"%Y_%m_%d_%H_%M_%S").log
echo $fecha >> $(date +"%Y_%m_%d_%H_%M_%S").log

Mi reto:

# ! /bin/bash
# Reto 1:
# Desarrollar un programa llamado utilityHost.sh, dentro de él vamos a declarar dos variables una llamada option, otra llamada result, vamos a inicializarles e imprimir sus valores.
# Author: Francisco Llanquipichun - https://francisco.llanquipichun.cl

option=1
result=2

echo "Valores de variables:"
echo "- option: $option"
echo "- result: $result"

#Reto 5: crea Log
date=$(date '+%Y%m%d%H%M%S')
touch "$date.log"
echo "-option: $option" >> "$date.log"
echo "-result: $option" >> "$date.log"

Dejo una explicación mas detallada de lo que entendí que pide el reto 5 gracias a los comentarios.

PD: Para saber como colocar la fecha en meses, días y horas , revisar con el comando man date ahí les saldrá los flags a usar (%m, %d, etc).

#!/bin/bash
#Reto5.sh

#this script saves the data you type in a log file

#Variables
name=""
age=0
date=`date +%Y%m%d%H%M%S`

#the script captures the value for defined variables
read -p "Type your name: " name
read -p "Type your age: " age

#the scrip wirtes the information in a file with using the forma date +%Y%m%d%H%M%S
echo "name: $name" >> $date.log
echo "age $age" >> $date.log

#showing the file name
echo "your file is $date.log"

#showing the file content
echo "your file content is:"
while IFS= read line
do
   echo "$line"
done < $date.log

# !bin/bash
# Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde 
# yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: Erick Jiménez - @erjimrio

echo -e "\nRETO 5"

name=""
lastName=""
secondLastName=""
age=""
address=""
phone=""
cellphone=""
date=`date +%Y%m%d%H%M%S`
echo -e
echo "Por favor, siga las siguientes intrucciones:"
echo -e
read -p "Digite su nombre o nombres (Sin apellidos): " name
read -p "Digite su apellido paterno: " lastName
read -p "Digite su apellido materno: " secondLastName
read -p "Digite su edad en anios: " age
read -p "Digite su direccion: " address
read -n10 -p "Digite su numero telefonico (10 digitos): " phone
echo -e
read -n10 -p "Digite su numero celular (10 digitos): " cellphone
echo -e "\n"
cat << EOM >> log$fecha.log
Informacion ingresada
Nombre: $name
Apellido paterno: $lastName
Apellido materno: $secondLastName
Edad: $age anios
Direccion: $address
Telefono: $phone
Celular: $cellphone
EOM
echo "Informacion guardada en el archivo log"

Código bash que escribe un registro “log” con el “usuario y la fecha” en el archivo “.utilityHost.sh”

<code>
#!/bin/bash
#Reto 5 Platzi
#JdavilaR

usuario=" "
archivo="utilityHost.sh"

clear
echo "________________________"
echo "|Acceso a la plataforma|"
echo "________________________"


read -p "cual es el nombre de tu usuario" usuario
echo "$usuario" 
echo "el Usuario $usuario el día $(date +%d) del mes $(date +%m) del año $(date +%Y) a las $(date +%H) horas y $(date +%M)Minutos $(date +%S)segundos se firmo en nuestro sistema" >> $archivo


cat utilityHost.sh
~                  
#!/bin/bash
#Declarar 2 variables e imprimir sus resultados
option=`uname -a`
result=$(date)
fecha=`date +%Y%m%d_%H%M%S`
echo -e "$result \n$option" > log_$fecha.txt

cat log_$fecha.txt