Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
9 Hrs
56 Min
45 Seg
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

Reading

Challenge 5:

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.

...

Register or login to read the rest of the content.

Contributions 77

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

No comprendo el reto 😕

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

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 ```
Como lo entendí: ```python # !/bin/sh # Description: This script will ask for the user's name and age, and then create a log file with the current date and time. Platzi Challenge 5. # Author: JC - @jc # Date: 2025-03-26 echo "What is your name?" read name echo "What is your age?" read age echo -e "\nCreating log file..." # Create a log file with the current date filename=$(date +%Y-%m-%d_%H-%M-%S.log) echo "$(date) - User $name, aged $age years old, logged in." >> $filename echo "Log file: $filename" echo -e "\nLog file created successfully! Please check the log file for details." ```
# # bash \#!/bin/bash \# Declarar y asignar variables option="menu\_Principal" result="operacion\_exitosa" \# Obtener la fecha y hora actual fecha=$(date + "%Y-%m-%H-%M-%S") \# Crear el nombre del archivo de log nombre\_log="log-$fecha.log" \# Escribir la información solicitada al archivo de log echo "Valor de la variable 'option': $option >> $nombre\_log echo "Valor de la variable 'result': $result" >> $nombre\_log \# Mostrar un mensaje para indicar que la información se ha escrito al archivo de log echo "Informacion escrita al archivo de log:$nombre\_log"
UtilityHost.sh: ```js # !/bin/bash # reto 1 # Autor: JuanObandoDev name="" age="" echo "what's your name?" read name echo "What's your age?" read age echo "Hello $name, enjoy your $age years old" export name export age ./5_challenge.sh ``` Reto 5: ```js # !/bin/bash # Modificar el archivo utilityHost.sh para escribir la informcaion solicitada a un archivo de log cuyo nombre será: logyyyyMMDDHHmmSS, donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos. # Autor: JuanObandoDev echo "generating log..." fileName="log$(date +%Y%m%d%H%M%S)" sleep 3 touch $fileName.txt echo "Name: $name" >> $fileName.txt echo "Age: $age years old" >> $fileName.txt echo -e "\n$fileName.txt Content:" cat $fileName.txt ```
```bash \#!/bin/bash \# Prompt user for date and time components echo "Enter the year (yyyy):" read year echo "Enter the month (MM):" read month echo "Enter the day (DD):" read day echo "Enter the hour (HH):" read hour echo "Enter the minutes (mm):" read minutes echo "Enter the seconds (SS):" read seconds \# Validate input to ensure proper formatting (optional) if \[\[ ! $year =~ ^\[0-9]{4}$ || ! $month =~ ^\[0-9]{2}$ || ! $day =~ ^\[0-9]{2}$ || ! $hour =~ ^\[0-9]{2}$ || ! $minutes =~ ^\[0-9]{2}$ || ! $seconds =~ ^\[0-9]{2}$ ]]; then echo "Invalid input. Please use the correct formats (e.g., yyyy for year, MM for month, etc.)." exit 1 fi \# Construct the filename filename="log${year}${month}${day}${hour}${minutes}${seconds}.log" \# Create the log file touch "$filename" echo "Log file '$filename' created successfully." ```
save\_log () { local backup\_file="log\_$(date +'%Y%m%d\_%H%M%S').txt" echo -e "\nSalvando la informacion en el log" echo -e "\nAlmacenando la informacion en el log: ">> "$backup\_file" echo -e "\n Almacenando valor de option: "$1>> "$backup\_file" echo -e "\n Almacenando el valor de result: " $2>> "$backup\_file" echo -e "\n Backup completo: $backup\_file" echo -e "\n" } \#Reto #5 option=1 result=2 echo $option echo $result save\_log $option $result
Mi reto #5 ```js # !/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: Catherine Flores option=$1 result=$2 date=$(date "+%Y-%m-%d-%H-%M-%S") read -p "Ingrese un valor: " option read -p "Ingrese un valor: " result echo "Creacion del Archivo" touch fichero_$date.log echo "Escribir en un archivo" cat <<EOM >>fichero_$date.log $option $result EOM echo "Visualizar el contenido del archivo" cat fichero_$date.log echo "Mover archivo a carpeta" mv fichero_$date.log logs_reto5/ ```*resultado* ![](https://static.platzi.com/media/user_upload/image-6a5dd706-7c1e-47b6-abd8-b337678c8ba8.jpg)![]()
```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