Skip to content

Getting Tomorrow’s Date in Bash {Practical Guide}

Advertisement

In the world of system administration and shell scripting, handling dates and times is very important. Whether you’re scheduling tasks, rotating logs, or simply adding timestamps to files, knowing how to work with dates in your scripts can save you a lot of time and effort. Bash, the Bourne Again Shell, has powerful tools for this purpose.

In this article, we’ll show you a simple example: how to get tomorrow’s date using Bash. There are several ways to do this, and we’ll go through a few examples using basic tools like date and GNU date.

The Date Command in Bash

The date command in Bash is a versatile tool that lets you format and change dates. By default, it shows the current date and time when you run it without any arguments.

date 

Wed May 15 10:34:12 UTC 2023

The real power of the date command comes from its options for formatting and changing dates. By using the -d (or --date) option, you can specify a different date instead of the current date. This can be a specific date like “2023-05-15” or a relative date like “yesterday” or “next week”.

Getting Tomorrow’s Date

To get tomorrow’s date, you can use the date command with the -d option and the string “tomorrow”.

date -d "tomorrow"

Thu May 16 10:34:12 UTC 2023

This command will show the date and time 24 hours from now. If you only want the date, you can use the + option to format the output:

date -d "tomorrow" '+%Y-%m-%d' 

2023-05-16

The +%Y-%m-%d option tells date to format the output as “YYYY-MM-DD”, which is a common and useful date format.

Store Result in Variable

While working with the bash scripting, many times we need to store dates in a variables for the further uses. The following sample shell script will hep you to store the tomorrows days in a variable.


T_DATE=$(date -d "tomorrow" '+%Y-%m-%d'}


This will store the tomorrows date in T_DATE variable in "YYYY-MM-DD" format.


Cross-Platform Considerations

While the above solution works well on GNU/Linux systems, it might not work on all Unix-like systems. For example, macOS uses the BSD version of date, which does not support the -d option. However, BSD date has the -v option, which lets you adjust the value of a particular time component. To get tomorrow's date on a system with BSD date, you could use:
date -v+1d '+%Y-%m-%d' 

2023-05-16

Here, -v+1d tells date to add one to the current date's day component.

Conclusion

In this article, we explored how to get tomorrow's date in Bash using the date command and its various options. Whether you're working on a GNU/Linux system or a Unix-like system with BSD date, these techniques can help you manipulate dates effectively in your scripts.

Remember, date manipulation is a vast topic, and we've only just scratched the surface here. The date command has many more options and possibilities. To explore further, check out the man page by typing man date into your terminal, or look up the online documentation for your system's version of date.

Rahul

I, Rahul Kumar am the founder and chief editor of TecAdmin.net. I am a Red Hat Certified Engineer (RHCE) and working as an IT professional since 2009..

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top