?
Solved

How to use Date and Time in the Unix, Bash shell script?

Posted on 2012-03-22
7
Medium Priority
?
975 Views
Last Modified: 2012-06-22
How to configure Date and Timem in Unix bash chell script and then write the message on the screen or into a file?
Please comment what else neededs to be added (or may be deleted from) to my code below:  

# Date and Time configuration

DATETIMESTAMP= date     
DATESTAMP=$DATETIMESTAMP

echo Date: $DATESTAMP    Time:  $DATETIMESTAMP

Open in new window


Thank you!
0
Comment
Question by:labradorchik
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 31

Expert Comment

by:farzanj
ID: 37754351
DATETIMESTAMP=$(date)
DATESTAMP=$(date "+%Y/%m/%d")
TIMESTAMP=$(date "+%T")
0
 

Author Comment

by:labradorchik
ID: 37754371
Could you please give an example of writing these two on the screen or into a different file?
Thank you!
0
 
LVL 4

Expert Comment

by:petr_hlucin
ID: 37754375
Use "date" (http://oss.sgi.com/LDP/LDP/sag/x2757.html) command to set current date and time, e.g. (to set date to March 22, 2012 16:30):

date 032216302012
0
Get real performance insights from real users

Key features:
- Total Pages Views and Load times
- Top Pages Viewed and Load Times
- Real Time Site Page Build Performance
- Users’ Browser and Platform Performance
- Geographic User Breakdown
- And more

 
LVL 4

Assisted Solution

by:petr_hlucin
petr_hlucin earned 200 total points
ID: 37754378
To write to a screen use:
echo $TIMESTAMP

To write into a file use:
echo $TIMESTAMP > /path/to/file
0
 
LVL 31

Assisted Solution

by:farzanj
farzanj earned 800 total points
ID: 37754394
On Screen:
DATETIMESTAMP=$(date)
DATESTAMP=$(date "+%Y/%m/%d")
TIMESTAMP=$(date "+%T")
echo "Date Time Stamp : $DATETIMESTAMP"
echo "Date Stamp : $DATESTAMP"
echo "Time Stamp : $TIMESTAMP"

Open in new window


To a file
DATETIMESTAMP=$(date)
DATESTAMP=$(date "+%Y/%m/%d")
TIMESTAMP=$(date "+%T")
echo "Date Time Stamp : $DATETIMESTAMP" >> file
echo "Date Stamp : $DATESTAMP" >> file
echo "Time Stamp : $TIMESTAMP" >> file

Open in new window

0
 
LVL 68

Accepted Solution

by:
woolmilkporc earned 1000 total points
ID: 37754395
Your script will not work.

In Unix you basically have to capture the output of the respective commands if you want to have it in a variable.

The syntax to assign the output of a command is

VARIABLE=$( command )

If it's just for displaying - issue the commands directly and that's it.

In your case it's the "date" command which has quite a lot of formatting options:
       %a
            Displays the locale's abbreviated weekday name.
       %A
            Displays the locale's full weekday name.
       %b
            Displays the locale's abbreviated month name.
       %B
            Displays the locale's full month name.
       %c
            Displays the locale's appropriate date and time representation.
            This is the default.
       %C
            Displays the first two digits of the four-digit year as a decimal
            number (00-99). A year is divided by 100 and truncated to an
            integer.
       %d
            Displays the day of the month as a decimal number (01-31). In a
            two-digit field, a 0 is used as leading space fill.
       %D
            Displays the date in the format equivalent to %m/%d/%y.
       %e
            Displays the day of the month as a decimal number (1-31). In a
            two-digit field, a blank space is used as leading space fill.
       %h
            Displays the locale's abbreviated month name (a synonym for %b).
       %H
            Displays the hour (24-hour clock) as a decimal number (00-23).
       %I
            Displays the hour (12-hour clock) as a decimal number (01-12).
       %j
            Displays the day of year as a decimal number (001-366).
       %k

            Displays the 24-hour-clock hour clock as a right-justified,
            space-filled number ( 0 to 23).
       %m
            Displays the month of year as a decimal number (01-12).
       %M
            Displays the minutes as a decimal number (00-59).
       %n
            Inserts a <new-line> character.
       %p
            Displays the locale's equivalent of either AM or PM.
       %r
            Displays 12-hour clock time (01-12) using the AM-PM notation; in
            the POSIX locale, this is equivalent to %I:%M:%S %p.
       %S
            Displays the seconds as a decimal number (00- 59).
       %s
            Displays the number of seconds since January 1, 1970, Coordinated
            Universal Time (CUT).
       %t
            Inserts a <tab> character.
       %T
            Displays the 24-hour clock (00-23) in the format equivalent to
            HH:MM:SS .
       %u
            Displays the weekday as a decimal number from 1-7 (Sunday = 7).
            Refer to the %w field descriptor.
       %U
            Displays week of the year(Sunday as the first day of the week) as
            a decimal number[00 - 53] . All days in a new year preceding the
            first Sunday are considered to be in week 0.
       %V
            Displays the week of the year as a decimal number from 01-53
            (Monday is used as the first day of the week). If the week
            containing January 1 has four or more days in the new year, then
            it is considered week 01; otherwise, it is week 53 of the previous
            year.
       %w
            Displays the weekday as a decimal number from 0-6 (Sunday = 0).
            Refer to the %u field descriptor.
       %W
            Displays the week number of the year as a decimal number (00-53)
            counting Monday as the first day of the week.
       %x
            Displays the locale's appropriate date representation.
       %X
            Displays the locale's appropriate time representation.
       %y
            Displays the last two numbers of the year (00-99).
       %Y
            Displays the four-digit year as a decimal number.
       %Z
            Displays the time-zone name, or no characters if no time zone is
            determinable.
       %%
            Displays a % (percent sign) character.

Open in new window

. The above is from "man date".

A simple version showing e.g. "2012-03-21" is

Datestamp=$(date "+%Y-%m-%d")
echo $Datestamp

and to show the time as e.g. "14:15:16" do

Timestamp=$(date "+%H:%M:%S")
echo $Timestamp

As I said, there are lots and lots of formatting options. . .
0
 

Author Comment

by:labradorchik
ID: 37754656
Thank you everyone!! Script works fine now.
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn different types of Android Layout and some basics of an Android App.
Make the most of your online learning experience.
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use nested-loops in the C programming language.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Suggested Courses

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question