How do I format date to display on screen on for my shell scripts as per my requirements on Linux or Unix like operating systemsYou need to use the standard date command to format date or time. You can use the same command with the shell script.
The syntax is
The syntax is
- date +FORMAT
- date +"%FORMAT"
- date +"%FORMAT%FORMAT"
- date +"%FORMAT-%FORMAT"
Task: Display date in mm-dd-yy format
Open a terminal and type the following date command:
$ date +"%m-%d-%y"
Sample output:02-27-07
To turn on 4 digit year display:
$ date +"%m-%d-%Y"
Just display date as mm/dd/yy format:$ date +"%D"
Task: Display time only
Type the following command:
$ date +"%T"
Outputs:19:55:04
To display locale's 12-hour clock time, enter:
$ date +"%r"
Outputs:07:56:05 PM
To display time in HH:MM format, type:
$ date +"%H-%M"
Sample outputs:00-50
How do I save time/date format to the shell variable?
A sample shell script
#!/bin/bash NOW=$(date +"%m-%d-%Y") FILE="backup.$NOW.tar.gz" echo "Backing up data to /nas42/backup.$NOW.tar.gz file, please wait..." # rest of script # tar xcvf /nas42/backup.$NOW.tar.gz /home/ /etc/ /var
A complete list of FORMAT control characters supported by the date command
FORMAT controls the output. It can be the combination of any one of the following:
%FORMAT String | Description |
---|---|
%% | a literal % |
%a | locale's abbreviated weekday name (e.g., Sun) |
%A | locale's full weekday name (e.g., Sunday) |
%b | locale's abbreviated month name (e.g., Jan) |
%B | locale's full month name (e.g., January) |
%c | locale's date and time (e.g., Thu Mar 3 23:05:25 2005) |
%C | century; like %Y, except omit last two digits (e.g., 21) |
%d | day of month (e.g, 01) |
%D | date; same as %m/%d/%y |
%e | day of month, space padded; same as %_d |
%F | full date; same as %Y-%m-%d |
%g | last two digits of year of ISO week number (see %G) |
%G | year of ISO week number (see %V); normally useful only with %V |
%h | same as %b |
%H | hour (00..23) |
%I | hour (01..12) |
%j | day of year (001..366) |
%k | hour ( 0..23) |
%l | hour ( 1..12) |
%m | month (01..12) |
%M | minute (00..59) |
%n | a newline |
%N | nanoseconds (000000000..999999999) |
%p | locale's equivalent of either AM or PM; blank if not known |
%P | like %p, but lower case |
%r | locale's 12-hour clock time (e.g., 11:11:04 PM) |
%R | 24-hour hour and minute; same as %H:%M |
%s | seconds since 1970-01-01 00:00:00 UTC |
%S | second (00..60) |
%t | a tab |
%T | time; same as %H:%M:%S |
%u | day of week (1..7); 1 is Monday |
%U | week number of year, with Sunday as first day of week (00..53) |
%V | ISO week number, with Monday as first day of week (01..53) |
%w | day of week (0..6); 0 is Sunday |
%W | week number of year, with Monday as first day of week (00..53) |
%x | locale's date representation (e.g., 12/31/99) |
%X | locale's time representation (e.g., 23:13:48) |
%y | last two digits of year (00..99) |
%Y | year |
%z | +hhmm numeric timezone (e.g., -0400) |
%:z | +hh:mm numeric timezone (e.g., -04:00) |
%::z | +hh:mm:ss numeric time zone (e.g., -04:00:00) |
%:::z | numeric time zone with : to necessary precision (e.g., -04, +05:30) |
%Z | alphabetic time zone abbreviation (e.g., EDT) |
SEE ALSO:
- Shell Scripting: Creating report/log file names with date in filename
- Format Date For Display or Use In a Shell Script
No comments:
Post a Comment