news@massey.ac.nz (USENET News System) (02/05/91)
Let's assume a csh invoked from a csh. How do keep track of how far down the track, one is? Let's say one has recursively invoked csh, it should be possible to discover how far down one is. How does one do it? Thanx Raminder $ingh Phone : +64 63 69 099 X 7772 Computer Centre MASSEY UNIVERSITY Fax : +64 63 505 607 Palmerston North NEWZEALAND E-mail: R.Singh@massey.ac.nz
subbarao@rise.Princeton.EDU (Kartik Subbarao) (02/05/91)
In article <1991Feb5.000455.9976@massey.ac.nz> R.Singh@massey.ac.nz (R. Singh) writes: >Let's assume a csh invoked from a csh. How do keep track of how far down >the track, one is? Let's say one has recursively invoked csh, it should be >possible to discover how far down one is. How does one do it? >Thanx If you have sps, it will show you this information in a nice format. Still, ps gives you the same information, and you'll just have to look at the output to see how many csh's have been invoked. -Kartik -- internet# find . -name core -exec cat {} \; |& tee /dev/tty* subbarao@{phoenix or gauguin}.Princeton.EDU -|Internet kartik@silvertone.Princeton.EDU (NeXT mail) -| SUBBARAO@PUCC.BITNET - Bitnet
fwp1@CC.MsState.Edu (Frank Peters) (02/05/91)
In article <1991Feb5.000455.9976@massey.ac.nz> news@massey.ac.nz (USENET News System) writes:
Let's assume a csh invoked from a csh. How do keep track of how far down
the track, one is? Let's say one has recursively invoked csh, it should be
possible to discover how far down one is. How does one do it?
Thanx
Csh doesn't come with any built in way but its pretty trivial to add.
Put the following code in your .cshrc file:
if ( $?cshlevel == 0 ) then
setenv cshlevel 1
else
setenv cshlevel `expr $cshlevel + 1`
endif
This checks to see if cshlevel is set. If not it sets it to one. If
it is set then it is incremented by one.
FWP
--
Frank Peters Internet: fwp1@CC.MsState.Edu Bitnet: FWP1@MsState
Phone: (601)325-2942 FAX: (601)325-8921boyd@necisa.ho.necisa.oz.au (Boyd Roberts) (02/06/91)
>In article <1991Feb5.000455.9976@massey.ac.nz> R.Singh@massey.ac.nz (R. Singh) writes: >Let's assume a csh invoked from a csh. How do keep track of how far down >the track, one is? Let's say one has recursively invoked csh, it should be >possible to discover how far down one is. How does one do it? >Thanx > Back in the dim distant past I used to have my prompt set to indicate how many C shells I had and whether they were root shells or me (now that's _quite_ a while back -- ugh -- the horrors of C shell). I have since returned to the fold and use a V8 style Bourne shell. I had this variable $cshdepth which had a `#' or `%' appended to it in my .cshrc depending on the uid of the shell. $cshdepth would then set part of my prompt, so I'd get a display like this: 1% /bin/su Password: # exec csh 1%# You get the idea? Boyd Roberts boyd@necisa.ho.necisa.oz.au ``When the going gets wierd, the weird turn pro...''
nto0302@dsacg3.dsac.dla.mil (Bob Fisher) (02/07/91)
From article <1991Feb5.000455.9976@massey.ac.nz>, by news@massey.ac.nz (USENET News System): > Let's assume a csh invoked from a csh. How do keep track of how far down > the track, one is? Let's say one has recursively invoked csh, it should be > possible to discover how far down one is. How does one do it? The following prefixes a "." to the prompt each time you invoke a new C shell. You get a visual reminder each time you get your prompt. set prompt="${LEVEL} %! => " setenv LEVEL ".${LEVEL}" -- Bob Fisher US Defense Logistics Agency Systems Automation Center DSAC-TOL, Box 1605, Columbus, OH 43216-5002 614-238-9071 (AV 850-9071) bfisher@dsac.dla.mil osu-cis!dsacg1!bfisher
rg@msel.unh.edu (Roger Gonzalez) (02/07/91)
I don't have anything that just prints your arbitrary csh level, but this
handles a couple important cases:
From the default .cshrc I set up new users to source in /:
----
if ($?prompt == 0) exit
set user = `who am i | cut -d" " -f1 | cut -d\! -f2`
set host = `hostname`
set prefix = $host':'$user
set user2 = `whoami`
if ($user2 == 'root') then
set suffix = '#'
else
set suffix = '%'
endif
if ($user == $user2) then
set prompt = $prefix$suffix' '
else
set prompt = $prefix' ('$user2')'$suffix' '
endif
----
I realize that this is isn't quite what you want, but I've been asked for
this a couple times before.
-Roger
--
"The question of whether a computer can think is no more interesting
than the question of whether a submarine can swim" - Edsgar W. Dijkstra
rg@[msel|unhd].unh.edu | UNH Marine Systems Engineering Laboratory
r_gonzalez@unhh.bitnet | Durham, NH 03824-3525