Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!cs.utexas.edu!rutgers!cmcl2!adm!news From: reschly@BRL.MIL (Robert J. Reschly Jr.) Newsgroups: comp.unix.questions Subject: Re: which/type & built-ins Message-ID: <21912@adm.BRL.MIL> Date: 1 Jan 90 23:17:07 GMT Sender: news@adm.BRL.MIL Lines: 41 Richard, You say: > Does anyone know why the C shell command "which" (ok, /usr/ucb/which) > and the Bourne shell command "type" don't understand built-in commands? The "which" command is an independent program (actually a C-shell script) which can be called from any command interpreter. Since the various command interpreters offer differing sets of built-in commands, "which" cannot presume to know anything about built-in commands. Additionally there is no reasonable way for "which" to learn this information. > I don't quite see why; surely it would be easy for /usr/ucb/which to > execute an appropriate switch() after everything else has failed. Resulting in "which blurfle" responding with "blurfle is a shell built-in"? What action would you have the switch() branch take? Note that another failure mode for "which" involves using a shell other than /bin/csh while having a .cshrc in your home directory. If this .cshrc defines any aliases, "which" will gladly report them even though they are probably inappropriate. As for "type", I have no good answers. Given that "type type" reports itself as a shell built-in it should be able to report on other built-ins. My current shell of choice, "tcsh" handles this operation correctly. Later, Bob -------- Internet: reschly@BRL.MIL (or BRL.ARMY.MIL) Phone: (301)278-6808 AV: 298 UUCP: ...!{{cmcl2,nlm-mcs,husc6}!adm,smoke}!reschly Postal: Robert J. Reschly Jr. U.S. Army Ballistic Research Laboratory Systems Engineering and Concepts Analysis Division Networking and Systems Development Team ATTN: SLCBR-SE-A (Reschly) APG, MD 21005-5066 (Hey, *I* don't make 'em up!) **** For a good time, call: (303) 499-7111. Seriously! ****