• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 379
  • Last Modified:

How to include current time in the command prompt?

Is there any way to include current time in the command prompt?
PS1="["`date +%X`"]" doesn't work.
0
kslzzg
Asked:
kslzzg
  • 5
  • 3
  • 2
  • +2
1 Solution
 
samriCommented:
It really depends on what shell you are in

in bash (/bin/sh)

PS1=`date "+%X"`

 wii do.

Samri

0
 
samriCommented:
kslzzq,

Sorry, the above does' answer your qquestion.

Maybe try this one.

In bash (/bin/sh)

PS1=\[`date "+%X"`\]


0
 
shiqiCommented:
It  can display the time but cannot keep going. The time format is HH:MM:SS
 which means the seconds "SS" should be able to go to keep it current.
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
samriCommented:
kstzzq,

I'm not sure how you could do this, but a trick that I can think of now is to create a small program to act as a subshell.

maybe it defeats a lot pf purposes (ENV vars for example). Anyway it shoudl get you started.

save the file as let say "cmd.pl", chmod +x cmd.pl, and run it. So every time you logged it, run the file, and voila, you got the prompt that tells you the time.

I would however, recommend you to buy a small desktop clock (if your intention is to keep track of time) :)
--
#!/usr/local/bin/perl
$|;
while (1) {
  chop($prompt=`date "+%X"`);
  print "[$prompt] ";
  (@tmplist)=split(/ +/,<STDIN>);
  $cmd = join(" ",@tmplist);
  system(@tmplist);
}          
0
 
kslzzgAuthor Commented:
You provided a very good trick. It will be better if the time displayed in the prompt can be automatically refreshed itself even
though I do not press <Enter>, just like a
digital clock.

The reason why I posted this question is totally out of curiosity and you may know that on MS-DOS, I can just run "set prompt=[$t]"  and I will get what your program can do.

Anyway, this is the best alternative solution
that I have ever seen.
0
 
samriCommented:
kslzzq,

well, cheap -and-dirty-trick :)  Anyway, just some drawback, I believe that you are limited to the environment variable set prior to the program running, ie, if you try to set envrontment variable to something withing the "fake" shell, you can't.  Well I think you can, but need to do some research on those.

Reagarding your intention to get the prompt to be "alive" (ie. the clock is constantly updating) - very intersting.  Unfortunately, with a straght-forward shell-trick, you can't.  maybe with some programming with curses-library, you can actually, get the current cursor position, and update the clock, and refresh the view.  Possible, YES.  How easy, I don't know.  Perhaps there are gurus out there that help on such thing.  But for the purpose of seeing the "live-clock" on the comand prompt, I would abandon the idea.

good luck,
0
 
ahoffmannCommented:
ok no live-clock, but in addidition to samri's suggestion, try following variables for the corresponding prompt variable:

  CMD.EXE: $T
  bast: \t
  lsh:  $T
  tcsh: %t %T %p %P %@
  zsh: %t %T %*

actually I don't have a zsh, but IIRC %* is what you're looking for
0
 
rkuetheCommented:
This is not a 'real-time' solution but anytime your prompt is refreshed, the current time will show (this is in KSH):

export PS1=`'date +%H:%M:%S">"'`

As far as a real-time update I would think you would need a separate process that runs in the bg, captures the time, and "writes" to your tty.

My $.02
0
 
kslzzgAuthor Commented:
rkuethe's solution cannot be accepted because it doesn't work on my ksh.
I would prefer samri's solution.
0
 
samriCommented:
kslzzg,

  Thanks fot the pts. Anyway, the question really pique my curiositu.  What is the purpose of having a "life" clock in the prompt anyway?

-samri
0
 
shiqiCommented:
I am actually out of curiorsity and also because sometimes I need to find out how long my commands take to finish  but I often forget to key in "date" beforehand and afterwards.  
0
 
ahoffmannCommented:
> because sometimes I need to find out how long my commands take to
simply use:
     time command

;-)
0
 
kslzzgAuthor Commented:
Sometimes you just forget to time the command,  another problem is I doubt  how can we time a shell script containing many commands and if statements.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

  • 5
  • 3
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now