Bash Scripting 20 – Write date and data a file
So following on from the previous scripts, it may be useful to record both the date and some data associated with that date to a file.
I have found out how to do this, but also tidied my script up, removed some unneeded code (quite a lot) and this should work.
echo "date" "data" # for reference, not written to file
for ((i = 0 ; i < 10 ; i++)); do
echo $(date), $((RANDOM % 20)) # echo to screen (stdout)
echo $(date), $((RANDOM % 20)) > log3.csv
done
Produces
date data
Fri 18 Apr 12:48:16 BST 2025, 0
Fri 18 Apr 12:48:16 BST 2025, 15
Fri 18 Apr 12:48:16 BST 2025, 13
Fri 18 Apr 12:48:16 BST 2025, 6
Fri 18 Apr 12:48:16 BST 2025, 6
Fri 18 Apr 12:48:16 BST 2025, 13
Fri 18 Apr 12:48:16 BST 2025, 18
Fri 18 Apr 12:48:16 BST 2025, 5
Fri 18 Apr 12:48:16 BST 2025, 3
Fri 18 Apr 12:48:16 BST 2025, 14
Which is fine, but we can refine the date output so it is shorter with
date "+DATE: %D TIME: %T"
date "+%D" display date no label
date "+%T" display tine no label
If we want this in a csv file it may help to add a comma
date "+DATE: %D, TIME: %T"
Remove the labels DATE: & TIME:
date "+ %D, %T"
Produces
date "+ %D, %T"
04/20/25, 14:58:19
My final entry, in the script run by cron, at least as far as time and date is concerned
echo $(date "+ %D, %T"), $(ansiweather -l Paignton -a false) >> weather.csv
As this sends the output to weather.csv, If we remove the redirect it will go to stout (standard output) we can just run the following on the terminal 'as is'
echo $(date "+ %D, %T"), $(ansiweather -l Paignton -a false)
This you should end up with
04/29/25, 15:44:14, Weather in Paignton: 16 °C - UVI: 5.91 - Wind: 0.89 m/s NNE - Humidity: 75% - Pressure: 1024 hPa
I have just copied and pasted the line in to the terminal and removed the >> weather.csv as that appends the csv file with the data.
As we all have different use cases, this solution is fine for me, I can adjust to suit further. This is far more useful for a CSV file, especially if you want to load the data in to a spreadsheet.
See fourth link below for full details. * Sources of help
https://stackoverflow.com/questions/40175868/how-to-create-csv-file-using-shell-script
https://stackoverflow.com/questions/1194882/how-to-generate-random-number-in-bash
https://linuxhandbook.com/bash-loops/
https://stackoverflow.com/questions/25242626/bash-redirect-output-to-log-file-with-day-date-in-the-name
https://phoenixnap.com/kb/linux-date-command
Tags
#Bash,#Bashscripting,#BashScripting,#Files,#Write,#Data,#Time,#Data
Mastodon | ShellLabs | Join Mastodon |