The date command with any options or flags will return something like this.
The following is the absoulte minimal code needed to produce the date in a BASH script.
~]# date
Wed Nov 30 19:01:23 CST 2023
Here is how you could add some text before the date in a bash shell script.
#!/bin/bash
echo "The current date and time is $(date)"
Which should produce the following.
The current date and time is Wed Nov 30 19:01:23 CST 2016
The -d or --date option can be used to set a specific date.
~]$ date --date "2023-01-01"
Sun Jan 1 00:00:00 CST 2023
Or to update the date, going forward or backwards x days.
#!/bin/bash
forward_14_days=$(date '+%m-%d-%Y' --date '+14 days')
backwards_14_days=$(date '+%m-%d-%Y' --date '-14 days')
Or months.
#!/bin/bash
forward_six_year=$(date '+%m-%d-%Y' --date '+6 months')
backward_six_year=$(date '+%m-%d-%Y' --date '-6 months')
Or years.
#!/bin/bash
forward_one_year=$(date '+%m-%d-%Y' --date '+1 year')
backward_one_year=$(date '+%m-%d-%Y' --date '-1 year')
Here is an example of how you could format the date.
#!/bin/bash
echo "The current date is $(date '+%m-%d-%Y')"
Which should produce the following.
The current date and time is 11-30-2016
Or like this.
#!/bin/bash
echo "The current date is $(date +%F)"
Following are commonly used format options.
Option | Description | Example |
---|---|---|
%Y | Year | 2018 |
%y | Year | 18 |
%m | Month | 01 |
%b | Month | Jan |
%B | Month | January |
%d | Day | 14 |
%H | Hour (24 hour format) | 22 |
%I | Hour (12 hour format) | 10 |
%M | Minute | 56 |
%S | Second | 23 |
%s | Seconds since 01/01/1970 00:00:00 UTC (epoch) | 1617673745124 |
%p | AM or PM | AM |
%P | am or pm | pm |
%a | Short day of the week | Sun |
%A | Full day of the week | Sunday |
%Z | Time zone | CDT |
UTC timezone
The date command will return the date for the timezone of your Linux system. The -u or --utc or --universal flag can be used to return the date in the UTC timezone.
date --utc
Or like this.
utc_time=$(TZ=GMT date)
echo $utc_time
Or like this.
export TZ=GMT
utc_time=$(date)
echo $utc_time
Variable and if / else statement
We can put the date in a variable and then use an if / else statement to display certain text based on the statement.
#!/bin/bash
today_epoch=$(date +%s)
some_other_date_epoch=$(date --date "2022-07-03" +%s)
if [ $today_epoch -le $some_other_date_epoch ]; then
echo True
else
echo False
fi
Running this script will produce the following:
False
Did you find this article helpful?
If so, consider buying me a coffee over at