You can use the date command to display or set the current date and time. You need to use the date FORMAT syntax to controls the output of the date command. The %T format sequence interpreted by the date command to display the current time. The syntax is:
date +%FORMAT
date +"%FORMAT"
var=$(date +"%FORMAT")
Example: Show current time
Open a terminal and type the following command:
date +"%T" |
Sample outputs:
16:33:22
To store time to a shell variable called now, enter:
now=$(date +"%T") echo "Current time : $now" |
Sample outputs:
Current time : 13:31:55
Example: 12 hour clock time
Pass the %r format to the date command:
date +"%r" |
Sample outputs:
01:37:06 PM
To remove AM or PM from the output use, type:
date +"%I:%M:%S" |
Sample outputs:
01:39:30
Sample shell script
#!/bin/bash # Purpose: Demo date command and menus # Author: nixCraft <www.cyberciti.biz> under GPL v2.x+ # ------------------------------------------------------ # Display text at given row and column show(){ local x=$1 local y=$2 local txt="$3" # Set cursor position on screen tput cup $x $y echo "$txt" } while [ : ] do clear # Get the system time now="$(date +"%r")" # Show main - menu, server name and time show 10 10 "MAIN MENU for $HOSTNAME - $now" show 11 10 "1. System info" show 12 10 "2. Apache server stats" show 13 10 "3. MySQL server stats" show 14 10 "4. Firewall stats" show 15 10 "5. Exit" tput cup 16 10; read -t 2 -p "Choice [1-5] ? " usrch # do something case $usrch in 1) read -t 2 -p "Showing system info, wait..." fakeinput;; 2) read -t 2 -p "Showing apache info, wait..." fakeinput;; 3) read -t 2 -p "Showing mysqld info, wait..." fakeinput;; 4) read -t 2 -p "Showing firewall info, wait..." fakeinput;; 5) echo "Bye."; exit 0;; esac done |
Run it as follows:
chmod +x demo.sh ./demo.sh |
Sample outputs:
References:
- date(1) for more information.
ow=$(date +”%T”)
should be
now=$(date +”%T”)
Thanks for the heads up!
i need a shell script to implement backround process that will print current time (**not in command prompt)
Hi great Job.
if i want to run my shell script for only five minutes but that should be in loop.how can i do this??
Could you please give some examples ASAP?
@Dilip
put your shell script under crontab configure it as per your requirement
Hi,
I need shell script which need to check one folder every day and list the files and send a mail to mail box..
ex: I have below folder
#cd /image/abc/20140921/
#/image/abc/20140921/ ls -ltr *gif* | wc
but here last date folder name will change as each day date..so script has to check every days files and send mail..
so please help me here..
regards
gkh
just the date command will do .