CSH prompt

Reed Loefgren rloefgren at forethought.net
Mon May 14 03:37:52 UTC 2012


On 05/13/12 07:25, Polytropon wrote:
> On Sun, 13 May 2012 14:56:31 +0200, Jos Chrispijn wrote:
>> In cshell I use this prompt: set prompt = "%B[%@]%b %m[%/]>  "
>> The problem I face now is that if I use this prompt with symbolic links,
>> the presented location is displaying the symbolic link rather than the
>> real directory name.
>> Is there a way of preventin this?
> Yes, a very ugly way which I just found out:
>
> 	alias precmd 'set WD=`pwd`; set prompt = "%B[%@]%b %m[$WD]>  "'
>
> Example:
>
> 	[3:21pm] r56[/]>  cd /sys
> 	[3:21pm] r56[/usr/src/sys]>  _
>
> It redefines the whole prompt at any command that could
> affect the current working directory (not only "cd" can
> do that). This is needed as any call to `pwd` stored into
> a variable will only affect $prompt once - this is when
> it's set, only at this time $WD would be evaluated. So
> that's why this strange command. :-)
>
> Oh, and I just improved it. How about this?
>
> 	alias precmd 'set prompt = "%B[%@]%b %m[`pwd`]>  "'
>
> Much better. :-)

I've butchered it further, but thanks for doing the *real* work:

user:
alias precmd 'set prompt = "\n%{\033[32m%}%m [%h] [%@]%b%{\033[0m%} 
[`pwd`]$ "'

root:
alias precmd 'set prompt = "\n%{\033[31m%}%m [%h] [%@]%b%{\033[0m%} 
[`pwd`]$ "'

Regards,

r







More information about the freebsd-questions mailing list