Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site globetek.UUCP Path: utzoo!utcs!mnetor!globetek!chris From: chris@globetek.UUCP (chris) Newsgroups: net.sources Subject: Re: wanted: cshell for systemV Message-ID: <207@globetek.UUCP> Date: Tue, 31-Dec-85 11:14:30 EST Article-I.D.: globetek.207 Posted: Tue Dec 31 11:14:30 1985 Date-Received: Tue, 31-Dec-85 15:19:08 EST References: <397@mordred.purdue.UUCP> Reply-To: chris@andor.UUCP (chris) Organization: Globetek Ltd., Toronto Lines: 101 Keywords: sh,csh Summary: In article <397@mordred.purdue.UUCP> fjn@purdue.UUCP (Francie J Newbery) writes: >Surely I am not the first person to be hankering for cshell when >I have to switch from my 4.2BSD Vax to my SystemV Release 2 machine. >If anyone has developed such a program (even a simplified version) >and would be willing to share it, I would be very interested in >seeing a copy. > >Thanks, >Francie Newbery Funny you should ask for this. Last Sunday I got so frustrated having no command history when dialing into a local system from home that I spent the next 7 hours amusing myself by implementing a cshell-like front-end for the Bourne shell. Ok, you say, very industrious, but why was it amusing? Well, I implemented it as a 400-line *Bourne Shell script*! Funny thing is, it's really surprisingly fast. The thing which slows it down the most is eval-ing the prompt after each command (so you can have the command number or the date or current directory in your prompt) -- if this bit of code is removed, you are not particularly aware your commands are being pre-processed. I will include a summary of the commands (still got to write the manual page *sigh*) at the end of this article -- if enough folks are interested, I'll post it, otherwise I'll be happy to mail it out. --chris : : Bcsh -- A Simple Cshell-Like Command Pre-Processor For The Bourne Shell : : "Copyright (c) Chris Robertson, December 1985" : : This software may be used for any purpose provided the original : copyright notice and this notice are affixed thereto. No warranties of : any kind whatsoever are provided with this software, and it is hereby : understood that the author is not liable for any damagages arising : from the use of this software. : : To the best of my knowledge this should work on ANY Bourne shell -- : except that if your shell does not understand 'echo -n' you will have to : change the 6 or so places where this occurs. : : Features: : : + simple command history : + command history persists across bcsh sessions : " + last-command editing via ^string1^string2 syntax or via " : EDITOR or VISUAL editors -- defaults are 'ed' and 'vi' : + aliases : + sources .bcshrc on startup if present : + history file name, .bcshrc file name, alias file name, : number of commands seen via history command, number of commands : saved on termination, etc. settable via environment variables : + prompt may show current directory, command number, date, etc. : : Commands: : : CMND run the Unix command CMND : !! run last command+ : !STRING run most-recent command from history list : beginning with STRING -- may have extra : arguments at end of command : ?STRING run most-recent command from history list : containing STRING -- may have extra arguments : at end of command : !NUMBER run command NUMBER from the history list : -- may have extra arguments at end of command : " ^string1^string2^ substitute string2 for string1 in last command" : command and run it : ~e edit last command using $EDITOR : ~v edit last command using $VISUAL : logout : exit : bye write out history file and exit+ : h : history show current history list+ : alias NAME CMD create an alias called NAME to run CMD : unalias NAME remove the alias NAME : : commands marked with '+' are not added to the history list : : In addition, the conventions of '!!:n', '!!:$', and '!!:*', : meaning the nth element of the previous command, the last : element of the previous command, and all the previous command : except the command name itself, are supported. : : None of the colon extensions of the cshell are supported. : : Shell Variables: : : EDITOR editor used by ~e command, default "ed" : VISUAL editor used by ~v command, default "vi" : MAIL your system mailbox : CHECKMAIL interval in seconds between mail checks, default = 120 : PAGER paging program used by history command, default = "more" : history number of commands in history list, default = 22 : histfile file history list is saved in, default = $HOME/.bhistory : savehist number of commands remembered from last bcsh session : aliasfile file of aliased commands, default = $HOME/.baliases : -- Christine Robertson {linus, ihnp4, decvax}!utzoo!globetek!chris Money may not buy happiness, but misery in luxury has its compensations...