Help setting PS1 prompt to include current time


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help setting PS1 prompt to include current time
# 1  
Old 11-28-2005
Help setting PS1 prompt to include current time

Hi,

I'm using the ksh shell and I'd like to set my PS1 prompt on an AIX system to include, amongst ther things, the current time.

This was my best effort: export PS1=$(date -u +%R)'${ME}:${PWD}# '
but this only sets the time to the value when PS1 is defined and the time value doesn't actually change after that.

Any one got any ideas how to achieve this? I've tried searching the forum but can't find anything.

Thanks

Gareth
# 2  
Old 11-28-2005
PWD, RANDOM and some other environment variables are defined by the shell to point to a function. I don't know of a function defined as a shell symbol that returns date & time.

In the korn shell try:
Code:
PS1='$RANDOM'

Then press return five or six times. There has to be code behind the call to the environment variable becuase it is dynamic.
# 3  
Old 11-28-2005
Try quoting the whole string: export PS1='$(date -u +%R) ${ME}:${PWD}# '
# 4  
Old 11-29-2005
Ygor's solution will work with ksh95 or pdksh. But ksh88 only expands variables...it won't do a general parse. I am not real fond of invoking the date command with each each display of the prompt.

ksh95 has a feature called discipline functions and these can be used to create dynamic variables that work like RANDOM.

Here is a solution that will work with all three versions of ksh. If we set SECONDS, it will continue to advance. So if we set it to the number of seconds since midnight it will serve as a time-of-day clock. To get from seconds-after-midnight to hours:minutes:seconds we need to do some arithmetic. If we reference a imaginary array, we can compute a subscript for it and use side effects from the subscript computation to set other variables. A single date process is used to initialize the clock, but after that the time is computed by the shell itself.

unset _h _m _s
eval $(date "+_h=%H ;_m=%M ;_s=%S")
((SECONDS = 3600*${_h#0}+60*${_m#0}+${_s#0}))
typeset -Z2 _h _m _s
_tsub="(_m=(SECONDS/60%60)) == (_h=(SECONDS/3600%24)) + (_s=(SECONDS%60))"
_timehm='${_x[_tsub]}$_h:${_m}'
_timehms='${_x[_tsub]}$_h:$_m:${_s}'

PS1="$_timehm $ "
These 2 Users Gave Thanks to Perderabo For This Post:
# 5  
Old 02-03-2009
Hello,
just a 'stupid' question I am using an older ksh (ksh88) and from there I enter into tcsh .... where should I place this code (and how should it be re-written, too), if I want to have it create env variables .... maybe by including it in .cshrc or some other startup files (.login or other)?
Well all that I was thinking of doing was to be able to have these env vars available by the time one of the alias statement inside my .cshrc executes, in such a way I could use the env var contents and place it onto the title bar of my xterm window. Result being I should then get a clock displayed in the title bar.
Do you have any advice or ideas?
Thanks for all!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Help changing the PS1 prompt in Solaris

Hi, I need help changing PS1 in Solaris. I tried this: MYPROMPT="> " PS1=$LOGNAME@$HOSTNAME:${PWD}$MYPROMPT (NOT SURE WHY IT'S HIGHLIGHTED HERE) export PS1 My problem is that $PWD is not working, when I get the prompt and I change directories, the prompt is not displaying the current... (17 Replies)
Discussion started by: curiousmal
17 Replies

2. UNIX for Dummies Questions & Answers

Need to revert default prompt in Linux after setting PS1 command

I have given as: PS1="Karthick>" in linux. Now the prompt changed as: Karthick> Now I need to get back the default prompt . How to achieve this? Thanks in advance (13 Replies)
Discussion started by: karthick nath
13 Replies

3. UNIX for Dummies Questions & Answers

Why is my PS1 breaking my prompt?

So, this is strange... I created this prompt: PS1='\n\e You can see that it's a pretty minor modification of the default Debian prompt. And, if it matters, I'm using Putty to SSH to my server. The following strange symptoms appear when I use that prompt, and disappear when I change and... (2 Replies)
Discussion started by: treesloth
2 Replies

4. Shell Programming and Scripting

How to display current time in the prompt

Hello All, I would like to display the current time in prompt. I tried using following command: export PS1="$(date +%k:%M:%S) $ " but it gave me a fixed time in prompt whereas my objective is to get the current time everytime. $ export PS1="$(date +%k:%M:%S) $ " 17:42:42 $ 17:42:42 $... (32 Replies)
Discussion started by: manishdivs
32 Replies

5. Shell Programming and Scripting

Change / Setup bash custom prompt (PS1)

I am trying to create my custom prompt and I have almost succeeded. Right now I have PS1='\n\\$\ ' What I have not figured out is how to make the directories bold when I'm using commands ls or ls -la. Any idea how to do it??? Many thanx. (2 Replies)
Discussion started by: emailkia
2 Replies

6. UNIX for Dummies Questions & Answers

Setting PS1

I have set PSI for my prompt using the following command: PS1="${debian_chroot:+($debian_chroot)}\\u@\h:\\\w\a]\ "which produces chrisd@pguk:~]I want to include [ in the beginning but cannot understand the way to do this. Also I want to show only the current directory, not the whole... (4 Replies)
Discussion started by: kristinu
4 Replies

7. Shell Programming and Scripting

How to get a Prompt (PS1) Timestamp under /sbin/sh?

Hi, I'm trying to find out if there is a way to get a timestamp on my Solaris root shell prompt using /sbin/sh? I'm trying to archive something in line with the following: 12:34:26 root@server # 12:34:28 root@server # 12:34:28 root@server # ls ... 12:34:30 root@server # I know there... (1 Reply)
Discussion started by: Solarius
1 Replies

8. UNIX for Dummies Questions & Answers

PS1 prompt

please advise what's wrong with this command ? PS1="`hostname`:`who am i | cut -d " " -f1`:>>" trying to make the PS1 prompt look like : machine_name:username:>> thank you (4 Replies)
Discussion started by: venhart
4 Replies

9. UNIX for Dummies Questions & Answers

colors in Prompt - $PS1

would someone please explain in detail, how does the code below change the color or bash prompt $ echo $PS1 :\033 are there other tricks like above? (3 Replies)
Discussion started by: rakeshou
3 Replies

10. Shell Programming and Scripting

PS1 with date stamp included in prompt

How would I put the date within my PS1 command for my shell prompt? I have it set to: PS1='$>' I tried PS1='$>' but that didn't work. (7 Replies)
Discussion started by: kymberm
7 Replies
Login or Register to Ask a Question