[comp.unix.wizards] Should ``csh'' be part of the System V distribution?

still@usceast.UUCP (Bert Still) (05/15/88)

Ok, it's been a little while since we had a real good "religious war" here in
comp.unix.wizards, and I have this strange feeling that this might turn into
one of those... however, here we go. (In the classic style of debate.)

WHEREAS a significant number of users on System V based UN*X machines use
	the Berkeley shell (hereafter, ``csh''),

WHEREAS the style of csh more closely resembles the C language (hence the name
	of the shell) than the Bourne or Korn shells, and

WHEREAS many distributors of System V based UN*X provide csh in their standard
	distribution (for example NCR and Hewlett Packard), be it

RESOLVED that csh should be included as a part of System V in the same sense
	that the ``vi'' editor, and TCP/IP have been included.

(The preceding remark was for the benefit of those who enjoy a good debate. I
know that I do. :-)

TRANSLATION:	I have heard several vendors of System V based UN*X state that
		the Berkeley shell is not provided as a part of their
		distribution because they do not perceive a need in the user
		community for csh.

	I would like to see what the people of the net, who use UN*X based
systems on a daily basis, think of this issue. And, since I started this
discussion, I will provide a first round.

	As I'm certain will be obvious, I am in a university environment where
I use both BSD and System V environments (in user and/or systems administrator
roles, on several different machines). Of all of the other users on these
systems (about 50 people), I count only 6 people who actually use the Bourne
shell for most (or all) of their work. Incidentally, as far as I know, no one
uses the Korn shell. (I checked the passwd and accounting files just to be
sure.) While I realize that this may not be typical of all installations, I
believe it is typical of a university environment, and unless I am badly
mistaken the number of UN*X installations at universities outnumbers the
number of commercial installations (note that at the moment I am discounting
the PC market: Xenix, System V/AT, etc. because this is a different market,
but that I am including workstations).

	Anyone out there have an opinion?

						Bert
						still@cs.scarolina.edu
Systems Manager
Math/Stat Computation Center
University of South Carolina

jeff@polyslo.UUCP (Skippy The Wonder Hacker) (05/15/88)

  The system that I run is the major unix machine for the university.
Here is the breakdown on shells:

	csh(actually tcsh):	740
	sh:			  5

Of the 5 that use /bin/sh, two work for AT&T, and one is a dedicated
version 7 hacker.

	Jeff Weinstein
	Computer Systems Lab
	Cal Poly State Univ
	jeff@polyslo.uucp
	ucbvax!voder!polyslo!jeff

karish@denali.stanford.edu (karish) (05/16/88)

In article <2601@usceast.UUCP> still@cs.scarolina.edu (Bert Still) writes:
>WHEREAS the style of csh more closely resembles the C language (hence the name
>	of the shell) than the Bourne or Korn shells, and
This is true, in a formal sense.  This feature should be useful mostly
in writing scripts.  Unfortunately, it is still painful to get the syntax
right, with the correct quotes, backslashes, etc.  And csh execution
(startup) is still slow.

>Incidentally, as far as I know, no one
>uses the Korn shell.

How many of your systems have ksh installed?

I'm trying out ksh now, after four years of using csh exclusively
(interactively).  The transition was easy.  I don't feel anywhere near
as restricted as I do when I use sh interactively.  The only thing I
miss is the '!$' construct; I suspect that there's a way to do this
under ksh, but I haven't found it yet.

The history, command line editing, and filename expansion previewing
features are superior to what csh offers, and in ways that make ksh
especially useful for naive users.  The key is that you always can see
the whole command line before you execute it.  This is much safer than
the csh history mechanism, which involves stabs in the dark using an
ed-like command set, with the added complexity of avoiding interference
with the shell's interpretation of special characters.

It is possible to do command-line editing of multi-line command
constructs.  Since ksh is a superset of sh, this makes ksh a
very powerful tool for prototyping fast, portable shell scripts.
Bourne shell scripts so produced are backwards compatible with
all existing U*ix systems; adding csh to the Sytem V package
would only help new buyers.

Unfortunately, AT&T isn't marketing ksh in a way that encourages its
adoption as a standard.  I'd like to see it bundled with System V,
instead of being an extra-cost option from the Toolchest.  The price
of  a re-distribution license is reportedly about $20,000, which is too
high, until there's a demand for the program.  The demand won't be
there until people can try the program, and we go around and around.

Some of Korn's claims for the program are a bit exaggerated.  It's
still a good piece of work, and a worthy replacement for csh.
Chuck Karish		ARPA:	karish@denali.stanford.edu
			BITNET:	karish%denali@forsythe.stanford.edu
			UUCP:	{decvax,hplabs!hpda}!mindcrf!karish
			paper:	1825 California St. #5
				Mountain View, CA  94041

gwyn@brl-smoke.ARPA (Doug Gwyn ) (05/16/88)

In article <2601@usceast.UUCP> still@cs.scarolina.edu (Bert Still) writes:
>RESOLVED that csh should be included as a part of System V in the same sense
>	that the ``vi'' editor, and TCP/IP have been included.

TCP/IP is available as an extra-cost "add-on", last I heard.
That might be appropriate for csh also, assuming that AT&T
wants to undertake its maintenance (I don't know why they
would).

csh's main problem is that it essentially duplicates Bourne
shell functionality in an incompatible way.  If there are
two "supported" command language interpreters for shell
scripts, then one has to flag every script with some
indication of the interpreter to be applied (e.g. the god-
awful #! kludge).  I note that most csh ports to System V
implementations that I've seen have gotten this wrong...

"C-like" is a joke.  Csh hardly resembles C, and to the
extent that it does, that is not a particular advantage for
a command language interpreter.

>... unless I am badly mistaken the number of UN*X installations at
>universities outnumbers the number of commercial installations ...

You're badly mistaken, even ruling out the vast majority of
counterexamples as you did.

Also, nothing is proved by your informal sampling.  There
are lots of reasons why people at your site might be using
csh instead of ksh, BRL Bourne sh, etc.  At our site several
people have switched from csh to the BRL sh, on both 4.3BSD-
and System V-based systems.

avr@mtgzz.UUCP (XMRP50000[jcm]-a.v.reed) (05/16/88)

Why would any sane person wish to use csh when they can use ksh?

					Adam Reed (mtgzz!avr)

ekrell@hector.UUCP (Eduardo Krell) (05/16/88)

In article <77@denali.stanford.edu> karish@denali.stanford.edu (Chuck Karish) writes:

(about ksh)

>The only thing I
>miss is the '!$' construct; I suspect that there's a way to do this
>under ksh, but I haven't found it yet.

In vi mode, use ESC_ (that is, escape key followed by an underscore).
    
    Eduardo Krell                   AT&T Bell Laboratories, Murray Hill, NJ

    UUCP: {ihnp4,ucbvax}!ulysses!ekrell		ARPA: ekrell@ulysses.att.com

donn@hpfcdonn.HP.COM (Donn Terry) (05/16/88)

At least HP supports ksh with their product (biased posting warning :-) ).

Actually if it were properly named it would be tksh (has some
of the TENEX filename completion stuff plus expands $NAME at the same
time; wonderful for editing environment variables: just expand
the statement PATH=$PATH and then edit the result!)  Our csh is
also tcsh.

Internal hue-and-cry got ksh supported.

Of the 3 major shells (sh, csh, ksh) I strongly believe that ksh is
the best user interface, and that it should be widely available.
It betters everything that csh does, and is sh compatible thus
allowing highly portable scripts.  You need only learn sh to write
scripts and still use a friendly interface.

$_ is the same thing as !$ for keyboard input (and something else
to the command that's running).

My contribution to the debate: don't worry about csh; get ksh in the
package instead.  If you don't believe me, try it a while.

Donn Terry
HP, Ft. Collins

avr@mtgzz.UUCP (XMRP50000[jcm]-a.v.reed) (05/17/88)

In article <77@denali.stanford.edu>, karish@denali.stanford.edu (karish) writes:
> I'm trying out ksh now, after four years of using csh exclusively
> (interactively).  The transition was easy.  I don't feel anywhere near
> as restricted as I do when I use sh interactively.  The only thing I
> miss is the '!$' construct; I suspect that there's a way to do this
> under ksh, but I haven't found it yet.

In ksh, the last argument of the previous line is "$_".
To get the entire previous line, use commands appropriate to your
editing mode. I use vi mode, so to get the previous line I type
"<ESC>-": <ESC> to escape into command mode, and - to get the
previous line. You can also use the search capabilities of your
editor, eg in vi mode, /cpio<RET> gets you the last command
containing the regular expression "cpio". Much more general than
anything you can do in csh, and you don't even need to learn a set of
csh-specific editing commands!
				Adam Reed (mtgzz!avr)

sef@csun.UUCP (Sean Fagan) (05/17/88)

In article <77@denali.stanford.edu> karish@denali.stanford.edu (Chuck Karish) writes:
>In article <2601@usceast.UUCP> still@cs.scarolina.edu (Bert Still) writes:
>>[says that we all want csh]

>>Incidentally, as far as I know, no one
>>uses the Korn shell.
>How many of your systems have ksh installed?

Good point.  *I* prefer ksh, under SysV.  I also have access to a system
which has csh (no ksh, alas), and decided that I definitely do prefer ksh
under SysV than csh.  I haven't had a chance to play with ksh under BSD, so
I can't say anything about that.

>The only thing I
>miss is the '!$' construct; I suspect that there's a way to do this
>under ksh, but I haven't found it yet.

For your information, try '$_'.  At least in my version, it is the last word
of the previous (command only?) line.  Both vi mode and emacs mode will
allow ESC-_ to do the expansion (although vi mode may require you to go back
into insert mode).

>[says lots of good things about ksh]

I agree.  ksh is my shell of choice.  Anybody know how well it works on
job-control systems?

>Chuck Karish		ARPA:	karish@denali.stanford.edu
-- 
Sean Fagan  (818) 885-2790   uucp:   {ihnp4,hplabs,psivax}!csun!sef
CSUN Computer Center         BITNET: 1GTLSEF@CALSTATE
Northridge, CA 91330         DOMAIN: sef@CSUN.EDU
"I just build fast machines."  -- S. Cray

davidsen@steinmetz.ge.com (William E. Davidsen Jr) (05/17/88)

In article <2601@usceast.UUCP> still@cs.scarolina.edu (Bert Still) writes:
| 
| Ok, it's been a little while since we had a real good "religious war" here in
| comp.unix.wizards, and I have this strange feeling that this might turn into
| one of those... however, here we go. (In the classic style of debate.)

  In spite of the fact that I would never use csh for anything, having
gotten spoiled by ksh, I think that csh would be a good addition.

  I think the reason it's used at universities is that (a) the /bin/sh
with BSD hasn't been upgraded in years (some vendors do, I realize), and
(b) the system administrator likes it so it's the default, and he tells
the student users "everybody uses it."

  If you have a class in shell programming you may see defections to a
new version of sh, and lots to ksh. Even some of our rabid csh fans have
changed, since they were forced to use it for some script programming
and liked it.

  If you see loops which look like as being a benefit, and don't have a
modern version of sh with functions, alias, and history, then use csh.
If you have a modern version of sh (or ksh) and need to use io
redirection beyond the most basic, use sh or ksh

  If you have people who can't use anything beyond a menu use vsh, and
if you have people who like DOS use dsh.

  This is why they make blonds and brunettes, so everyone can find what
they like, and have an alternative if they want a changed of pace ;-).
-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me

john@frog.UUCP (John Woods) (05/17/88)

In article <77@denali.stanford.edu>, karish@denali.stanford.edu (karish) writes:
> In article <2601@usceast.UUCP> still@cs.scarolina.edu (Bert Still) writes:
> >Incidentally, as far as I know, no one
> >uses the Korn shell.

The UNOS operating system is now shipped with ksh as the standard command
interpreter (since ksh can be used without a UNIX(R) license).

> The only thing I miss is the '!$' construct;

Perhaps there are subtleties in the csh !$ construct that I am missing, but
in ksh, $_ is the last word of the previous command line.  In emacs mode,
ESC . (period) expands immediately into the last word.

> Unfortunately, AT&T isn't marketing ksh in a way that encourages its
> adoption as a standard.  I'd like to see it bundled with System V,
> instead of being an extra-cost option from the Toolchest.  The price
> of  a re-distribution license is reportedly about $20,000, which is too
> high, until there's a demand for the program.  The demand won't be
> there until people can try the program, and we go around and around.

For an operating system vendor, $20,000 for the right to distribute an
infinite number of copies of an incredibly useful program ought to be quite
attractive (though I guess traditional UNIX vendors might figure "it's not
THAT much better than plain old sh", or worse, "How could anything be better
than csh?" ULCH!).  And for mid-sized user communities, the $2,000 source-
and-site-license doesn't seem that bad, either.

> Some of Korn's claims for the program are a bit exaggerated.  It's
> still a good piece of work, and a worthy replacement for csh.

Amen!
-- 
John Woods, Charles River Data Systems, Framingham MA, (617) 626-1101
...!decvax!frog!john, john@frog.UUCP, ...!mit-eddie!jfw, jfw@eddie.mit.edu

"Cutting the space budget really restores my faith in humanity.  It
eliminates dreams, goals, and ideals and lets us get straight to the
business of hate, debauchery, and self-annihilation."
		-- Johnny Hart

sullivan@vsi.UUCP (Michael T Sullivan) (05/17/88)

In article <2593@polyslo.UUCP>, jeff@polyslo.UUCP (Skippy The Wonder Hacker) writes:
> 
>   The system that I run is the major unix machine for the university.
> Here is the breakdown on shells:
> 
> 	csh(actually tcsh):	740
> 	sh:			  5

When I was going to school (UCSB, just down the road a ways :-) I'd say
most if not all students were using csh.  It was the default shell and
we didn't know any better to change it or even if we wanted to.  I took
a class my last year, though, in which we went over sh and compared it
to csh.  sh came out on top although it's been a few years since the
class and the last time I used csh so I can't remember the reasons given
(meaning: don't flame me).  Students are sheep (usually).

-- 
Michael Sullivan		{uunet|attmail}!vsi!sullivan
				sullivan@vsi.com
HE V MTL			Anybody out there remember Max Webster?

friedl@vsi.UUCP (Stephen J. Friedl) (05/17/88)

In article <668@vsi.UUCP>, sullivan@vsi.UUCP (Michael T Sullivan) writes:
< In article <2593@polyslo.UUCP>, jeff@polyslo.UUCP (Skippy The Wonder Hacker) writes:
< > 
< >   The system that I run is the major unix machine for the university.
< > Here is the breakdown on shells:
< > 
< > 	csh(actually tcsh):	740
< > 	sh:			  5
< 
< When I was going to school (UCSB, just down the road a ways :-) I'd say
< most if not all students were using csh.  It was the default shell and
< we didn't know any better to change it or even if we wanted to.

Also keep in mind that many 4.2 systems don't have the Sys V /bin/sh,
which is a lot nicer than UCB /bin/sh.  Sure, there is no history, but
shell functions are really wonderful.  I use sh and ksh all the time,
but when I login to the VAX back at school I lose my mind.

-- 
Steve Friedl    V-Systems, Inc. (714) 545-6442    3B2-kind-of-guy
friedl@vsi.com    {backbones}!vsi.com!friedl   attmail!vsi!friedl

ekrell@hector.UUCP (Eduardo Krell) (05/17/88)

In article <1262@csun.UUCP> sef@csun.UUCP (Sean Fagan) writes:

>I agree.  ksh is my shell of choice.  Anybody know how well it works on
>job-control systems?

Just as good as csh. We link ksh to /bin/sh in all our Vaxen and Suns
(running 4.3 BSD and SunOS), and a quick look at /etc/passwd finds 1
user who uses csh out of some 300.
    
    Eduardo Krell                   AT&T Bell Laboratories, Murray Hill, NJ

    UUCP: {ihnp4,ucbvax}!ulysses!ekrell		ARPA: ekrell@ulysses.att.com

ado@elsie.UUCP (Arthur David Olson) (05/17/88)

> > The only thing I miss is the '!$' construct;
> 
> Perhaps there are subtleties in the csh !$ construct that I am missing, but
> in ksh, $_ is the last word of the previous command line.  In emacs mode,
> ESC . (period) expands immediately into the last word.

And, as noted in someone else's earlier article, ESC _ works in vi mode.

There are, though, subtleties with $_:

		Script started on Tue May 17 10:24:53 1988
		$ cd /tmp
		$ tee a b c < /dev/null
		$ /bin/csh
		% echo ?
		a b c
	>>>>	% echo !$
		echo ?
	>>>>	a b c
		% exit
		$ /etc/ksh
		$ echo ?
		a b c
	>>>>	$ echo $_
	>>>>	c
		$ exit
		$ exit

		script done on Tue May 17 10:25:36 1988
-- 
	ado@ncifcrf.gov			ADO is a trademark of Ampex.

krohn@u1100a.UUCP (Eric Krohn) (05/17/88)

In article <77@denali.stanford.edu> karish@denali.stanford.edu (Chuck Karish) writes:
] Unfortunately, AT&T isn't marketing ksh in a way that encourages its
] adoption as a standard.  I'd like to see it bundled with System V,
] instead of being an extra-cost option from the Toolchest.

I read a newsletter from (I think) the New York City /usr/group chapter
which summarized David Korn's recent talk at one of their meetings.
The article claimed that ksh would be in the next release of System V.

Anyone know the facts?

-- 
--
Eric J. Krohn
krohn@ctt.ctt.bellcore.com  or  {allegra,bellcore,ihnp4}!u1100a!krohn
Bell Communications Research,	444 Hoes Ln,    Piscataway, NJ 08854

davidsen@steinmetz.ge.com (William E. Davidsen Jr) (05/18/88)

In article <1262@csun.UUCP> sef@csun.UUCP (Sean Fagan) writes:

| I agree.  ksh is my shell of choice.  Anybody know how well it works on
| job-control systems?

works fine. I'm not a big user of job control, but I haven't seen an
error in the last year or so, nor had any report of it.
-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me

sarima@gryphon.CTS.COM (Stan Friesen) (05/18/88)

In article <2601@usceast.UUCP> still@cs.scarolina.edu (Bert Still) writes:
>
>Ok, it's been a little while since we had a real good "religious war" here in
>comp.unix.wizards, and I have this strange feeling that this might turn into
>one of those... however, here we go. (In the classic style of debate.)
>
>RESOLVED that csh should be included as a part of System V in the same sense
>	that the ``vi'' editor, and TCP/IP have been included.
>
>TRANSLATION:	I have heard several vendors of System V based UN*X state that
>		the Berkeley shell is not provided as a part of their
>		distribution because they do not perceive a need in the user
>		community for csh.
>
>
>	Anyone out there have an opinion?

	I *refuse* to use the Bourne Shell since it lacks a history mechanism,
which I consider imperative in an *interactive* shell. The Korn Shell has a
history mechanism, so it MAY be acceptible. That is if the history mechanism
is easily used. I am somewhat concerned that it does not provide a quick and
dirty way of snagging the one or more of the arguments of the previous
command though. I find I use that capability in csh more than I use the
editing capability. Certainly the *editing* capability in the Korn Shell is
very nice.
	So, all in all, I would prefer to see the C-shell on any system I
work on. But I would be willing to at least try the Korn Shell if I had to.
-- 
Sarima Cardolandion			sarima@gryphon.CTS.COM
aka Stanley Friesen			rutgers!marque!gryphon!sarima
					Sherman Oaks, CA

rsalz@bbn.com (Rich Salz) (05/18/88)

The answers seem to narrow down to:
    1.  Ksh is best
    2.  Csh is a crock
    3.  Csh is friendlier, and looks kinda like C
    4.  I want to do "this" in the XXXsh, how do I do it?
    5.  Sh is portable
    6.  On my system we have ### users of XXXsh, and only # users of XXXsh

Can we stop cluttering the net, now?

BTW, I would be interested in hearing anyone address the question
that was REALLY asked (go read the Subject line...)
	/rich $alz
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.

kre@munnari.oz (Robert Elz) (05/18/88)

In article <4095@mtgzz.UUCP>, avr@mtgzz.UUCP (XMRP50000[jcm]-a.v.reed) writes:
> Why would any sane person wish to use csh when they can use ksh?

Because (apart from not necessarily being able to use ksh), ksh doesn't
do everything that csh does quite as well.  It certainly does a lot of
things better, but the few bits and pices lacking seem to be enough of
a drawback to people who have used csh for a long time that the other
advantages of ksh just don't overcome them.  If you've never really
used csh, that is, if you've never once done

	cmd !?ff?:% !?gg?:%

which I think isn't trivial in ksh, then you probably would find ksh
perfectly adequate.

In <1072@X.UUCP> john@frog.UUCP (John Woods) writes:
> Perhaps there are subtleties in the csh !$ construct that I am missing, but
> in ksh, $_ is the last word of the previous command line.

No, as Arthur Olson (ado@elsie.UUCP, aka ado@ncifcrf.gov) pointed out
in <8063@elsie.UUCP>, $_ in ksh is the last arg passed to the last
command that you executed (ie: argv[argc-1]), it has little to do
with the command line, which is what !$ references.  Ado's message
showed that if the last word on the command line used a shell magic
character, ksh's and csh's results are quite different.

A similar thing happens if the previous command line ended with
output (or input) redirection

	cat a b c > d
	vi !$

is quite different in effect (in csh) from

	cat a b c > d
	vi $_

in ksh.

Note, neither of these interpretations is better in all circumstances,
you'll find that

	cc foo.c &
	vi !$

is not particularly useful, whereas

	cc foo.c &
	vi $_

probably would be, if only it would set $_ at all, rather than just
leaving it unchanged.  However, csh users tend to be used to the csh !$
construct, and $_ just isn't what is wanted most of the time.

Like David Elliott (dce@mips.COM) in <2199@quacky.mips.COM>, I have
found personally (when I've used ksh on occasions) that csh's history
operators are much easier to use for quick substitutions, than ksh's
editing, I often use a sequence a bit like

	mv A B
	cp !$ !^

which is a lot harder to accomplish in ksh.

Aside: I know I could define a ksh (or SysV sh) function to do this, as I
  could define a csh alias, or for that matter, just write a sh script, but
  I don't want a new command, I don't do it often enough to bother remembering
  a new name, I really want to type two commands (which aren't always cp & mv),
  I just don't want to have to type the path names (A and B are often
  fairly lengthy).

I also use the { } csh operator a LOT, though I thought that it
had been added to some version of ksh?

I wish that someone (Korn, or almost anyone else) would add these few
remaining trivialities to ksh (I could actually do without the ^ and
!!:s/// stuff, just give access to the !{^,$,[0-9]*,!} operators,
probably as variables of some form, maybe 

	$^  for !^
	$=n for !n
	$=  for !!
	$%  for !$  (the real !$, rather than $_ which should remain)

and add {}, I could even accept $( and $), then I might be able to
justify spending the $US3000 that ksh costs, or did last time I checked
(which is a little amazing, considering that I can get the whole rest of
unix, including utilities for $US800, again, the last time I checked,
and under an academic licence of course).  Until then, ksh isn't an option
at all on most of our hosts, it exists only on a couple where the vendor
happens to supply it.

kre		kre@munnari.oz.au

ps: if ksh really does set the env variable '_' to be the full path of
the command executed, which I have no evidence to support, how would a
ksh script access this information, since $_ already has a defined
meaning?  Seems a little odd, even if putting this kind of thing in
the shell was the right place to put it, which it isn't (every program
is, or could be, a shell, so put it in the shell means put it everywhere).

rja@edison.GE.COM (rja) (05/18/88)

> 
> I agree.  ksh is my shell of choice.  Anybody know how well it works on
> job-control systems?
> 
> >Chuck Karish		ARPA:	karish@denali.stanford.edu
> -- 

  I also would use ksh if I had a choice.  Since the system I'm using is 
running 4.2 BSD, I'm using csh instead of the (unimproved for a long time)
sh supplied on the system.  I especially like being able to tell ksh to use
emacs mode with the command line.  
  I've found job control with ksh to be as good or better than that with 
4.x BSD systems' csh.  I've only used ksh on AT&T 3Bx machines, but have been
especially pleased with layers running on a AT&T 5620 bit-mapped terminal
since it lets you have several windows into different jobs on one screen.
Also, the ksh I was using supported the fg and bg commands that csh has.
  Friends in grad school at U.Va. claim that some/all of the job control
commands are "extra cost options" that their systems don't have available.
I don't know myself first hand if that is true.
  I do think that ideally people would get to use their own shell, be it
vsh, dsh, sh, csh, ksh, or whatever fits the user....

______________________________________________________________________________
         rja@edison.GE.COM      or      ...uunet!virginia!edison!rja  
         
______________________________________________________________________________

lvc@tut.cis.ohio-state.edu (Lawrence V. Cipriani) (05/18/88)

In article <4097@mtgzz.UUCP> avr@mtgzz.UUCP (XMRP50000[jcm]-a.v.reed) writes:
	...
>You can also use the search capabilities of your
>editor, eg in vi mode, /cpio<RET> gets you the last command
>containing the regular expression "cpio". ...
		^^^^^^^^^^^^^^^^^^

Nope.  Ksh only searchs for the *string* cpio.



-- 
Larry Cipriani, AT&T Network Systems and Ohio State University
Domain: lvc@tut.cis.ohio-state.edu
Path: ...!cbosgd!osu-cis!tut.cis.ohio-state.edu!lvc (weird but right)

karish@denali.stanford.edu (Chuck Karish) (05/18/88)

In article <744@fig.bbn.com> rsalz@bbn.com (Rich Salz) writes:
>Can we stop cluttering the net, now?
Sure, right after I make one more comment.

>BTW, I would be interested in hearing anyone address the question
>that was REALLY asked (go read the Subject line...)
Does anyone really think that Sun is going to desert their
existing customer base when they merge their OS definition with
AT&T's?  I expect the first full release of the merged
Unix to include csh.

Chuck Karish	ARPA:	karish@denali.stanford.edu
		BITNET:	karish%denali@forsythe.stanford.edu
		UUCP:	{decvax,hplabs!hpda}!mindcrf!karish
		USPS:	1825 California St. #5   Mountain View, CA 94041

barnett@vdsvax.steinmetz.ge.com (Bruce G. Barnett) (05/18/88)

|	Anyone out there have an opinion?

Well - since you asked -

I think sh, csh and ksh should be standard .
	(okay - you could rename ksh to sh)

I also think the new make, awk, and pic/ditroff should be standard.
What else? - maybe plot(5).
And the -mm, -ms and -me macro package while we are at it.

If these programs Are standard -  forgive my ignorance. We don't have any
V.3 systems here.

The idea of unbundling improvement/upgrades to standard utilities seems silly
to me. 

It is difficult enough to keep source code portable between Unicii

But it would be nice to have script and documentation compatibility also.

Points to consider:

	o Licensing 'common utility' software per machine
	  is difficult to enforce in an network/NFS environment unless
	  the software is CPU locked.

	  (ditroff is on machines a, b and c. C also has the new make.
	  A has ksh. B has the new awk. D has ksh, make and awk but no pic.
	  Now let's see - you have a makefile that needs all four.
	  And it uses the -mm and -me macros for different sections?

	  Nope - you can't run it. Sorry.)

	o Some people will be hesitant to use a new feature unless
	  it will always be available. How many AWK scripts use
	  functions? I wouldn't publish any such scripts because
	  I don't think many sites have the new awk.

	  If I knew that all V.4 systems had the new awk/make/sh/roff
	  features I would not hesitate to use them.

	  (Will the Open System Foundation version have them? - who knows?)

One more point:

	I think the C-shell should be standard. 

	Why?

	Productivity.

	NOT because one shell is better than the other.

	But because someone whom only knows csh can use the system 
	WITHOUT any learning curve. 

	ksh may be the best shell in the world. I haven't learned it
	because I Don't Have Time.

	This is like telling someone who uses troff to switch to LaTeX.
That may be fine in theory, but when I have to get a paper out by the
end of the week I don't really care how 'superior' one program is over
another. I have to get my work done NOW!
-- 
	Bruce G. Barnett 	<barnett@ge-crd.ARPA> <barnett@steinmetz.UUCP>
				uunet!steinmetz!barnett

ekrell@hector.UUCP (Eduardo Krell) (05/19/88)

In article <762@ambush.UUCP> kimcm@ambush.UUCP writes:

>Korn Shell:
>	- Inadequate automatical scripts (.kshrc, .profile)

Excuse me, but how is this "Inadequate"? If you mean the lack of a
.logout as in csh, how about

trap .logout 0

    
    Eduardo Krell                   AT&T Bell Laboratories, Murray Hill, NJ

    UUCP: {ihnp4,ucbvax}!ulysses!ekrell		ARPA: ekrell@ulysses.att.com

guy@gorodish.Sun.COM (Guy Harris) (05/19/88)

> I think sh, csh and ksh should be standard .
> 	(okay - you could rename ksh to sh)

Well, no, you really can't, not always.  There are supposedly a few real live
incompatibilities that may break some scripts.

> I also think the new make, awk, and pic/ditroff should be standard.
> What else? - maybe plot(5).
> And the -mm, -ms and -me macro package while we are at it.
> 
> If these programs Are standard -  forgive my ignorance. We don't have any
> V.3 systems here.

The only ones that are standard with S5R3 are: "sh" (obviously), "the new
make" if this refers to the S5 "make" (neither "nmake" nor "mk" are part of
S5R3), and the "plot" stuff (PLOT(5) describes the format - AT&T calls this man
page PLOT(4); according to the S5R3 man pages, the "plot" command is there,
under the name of "tplot", and the "plot" library is there, but it supports
fewer devices than 4.3BSD does).

The new "awk" is standard with S5R3.1.  *None* of the formatting stuff is
standard with S5R3 of any flavor; this includes "ditroff", "pic", and all the
aforementioned macro packages.  It's all part of DWB, which provides "-mm" but
neither "-ms" nor "-me".

Of course, just because AT&T doesn't make something standard with *their*
releases doesn't mean everybody else is obliged to unbundle it.  They can
bundle it, as long as they pay AT&T all the requisite licensing fees for all
the code in question (DWB requires a separate license, as does "ksh"; "csh" and
"-me" don't, and I guess "-ms" doesn't because it's covered by your base UNIX
license, having been a part of older AT&T releases).

guy@gorodish.Sun.COM (Guy Harris) (05/19/88)

> Does anyone really think that Sun is going to desert their
> existing customer base when they merge their OS definition with
> AT&T's?  I expect the first full release of the merged
> Unix to include csh.

I would expect the first OS release from Sun that is based on the merged UNIX
to include "csh" (DISCLAIMER: this is NOT an official policy statement from
Sun, it's just what I expect to happen, because our customer base will expect
it to be there).

This is *not* equivalent to expecting the stuff AT&T ships on the S5R4 source
tape to include "csh".  Nothing prevents us from adding "csh" to our release if
AT&T doesn't put it on the tape.  Whether it goes on the tapes AT&T ships is up
to AT&T.  Whether it goes on the tapes Sun ships is up to Sun.

I don't know whether AT&T will put it on their tapes or not; as I said, that's
up to AT&T.  If you want AT&T to ship it, tell them so.

rcodi@yabbie.rmit.oz (Ian Donaldson) (05/19/88)

From article <10295@ulysses.homer.nj.att.com>, by ekrell@hector.UUCP (Eduardo Krell):
> 
> Just as good as csh. We link ksh to /bin/sh in all our Vaxen and Suns
> (running 4.3 BSD and SunOS), and a quick look at /etc/passwd finds 1
> user who uses csh out of some 300.

Yes, but how many of these 300 have actually evaluated both shells?

I suspect less than 10%.

The rest would have just used whatever was going and was advised to
them by somebody else, who may or may not have evaluated both shells
either.

Ian D

wwtz@cgcha.uucp (Wolfgang Wetz) (05/19/88)

In article <4095@mtgzz.UUCP> avr@mtgzz.UUCP (XMRP50000[jcm]-a.v.reed) writes:
>
>Why would any sane person wish to use csh when they can use ksh?
>
>					Adam Reed (mtgzz!avr)

perhaps because the ksh writes back to disk the whole history file after
each <return>.

Wolfgang Wetz   (..!mcvax!cernvax!cgch!wwtz)

ekrell@hector.UUCP (Eduardo Krell) (05/20/88)

In article <770@yabbie.rmit.oz> rcodi@yabbie.UUCP writes:

>The rest would have just used whatever was going and was advised to
>them by somebody else, who may or may not have evaluated both shells
>either.

Not so. Everyone in my department, for example, came from a BSD environment
(in Universities) where csh was the only shell they ever used (myself
included). They've never heard of ksh and they've never used the bourne
shell either. All of them eventually switched over to ksh and have never
gone back to csh.
    
    Eduardo Krell                   AT&T Bell Laboratories, Murray Hill, NJ

    UUCP: {ihnp4,ucbvax}!ulysses!ekrell		ARPA: ekrell@ulysses.att.com

lvc@tut.cis.ohio-state.edu (Lawrence V. Cipriani) (05/21/88)

In article <10292@ulysses.homer.nj.att.com>, ekrell@hector.UUCP (Eduardo Krell) writes:
> In vi mode, use ESC_ (that is, escape key followed by an underscore).
>     
>     Eduardo Krell                   AT&T Bell Laboratories, Murray Hill, NJ

You can get at any command line text of the previous command if you provide
a number between the ESC and _.  For example:

	$ echo a b c d e f g
	a b c d e f g
	$ echo ESC4_		# turns into the command
	$ echo  c

I don't believe this is documented in the 06/03/86a ksh man page.
-- 
Larry Cipriani, AT&T Network Systems and Ohio State University
Domain: lvc@tut.cis.ohio-state.edu
Path: ...!cbosgd!osu-cis!tut.cis.ohio-state.edu!lvc (weird but right)

allbery@ncoast.UUCP (Brandon S. Allbery) (05/24/88)

As quoted from <77@denali.stanford.edu> by karish@denali.stanford.edu (karish):
+---------------
| I'm trying out ksh now, after four years of using csh exclusively
| (interactively).  The transition was easy.  I don't feel anywhere near
| as restricted as I do when I use sh interactively.  The only thing I
| miss is the '!$' construct; I suspect that there's a way to do this
| under ksh, but I haven't found it yet.
+---------------

$_ is the last word on the previous line.  Also, <ESC>. in emacs mode (ESC
dot).
-- 
	      Brandon S. Allbery, moderator of comp.sources.misc
	{well!hoptoad,uunet!marque,cbosgd,sun!mandrill}!ncoast!allbery
Delphi: ALLBERY						     MCI Mail: BALLBERY

jc@minya.UUCP (John Chambers) (05/27/88)

In article <4095@mtgzz.UUCP>, avr@mtgzz.UUCP (XMRP50000[jcm]-a.v.reed) writes:
> 
> Why would any sane person wish to use csh when they can use ksh?
> 

Hey, that one's so easy, I can answer it!  

The reason is the same as why we have compilers for silly languages like
Fortran or Pascal (oops, I can see the C/Pascal war starting already :-).
There are useful programs around that just happen to be written in the
csh dialect, and they won't run if you feed them to ksh.  If you have
csh available, it's a whole lot easier to use it than it is to rewrite
all those useful scripts.

I'd be using ksh here, too, if I had a spare $20K to pay for it.

(Hey, anyone wanna slip me an illicit copy?  Then I won't send you
any csh scripts any more. ;-)

-- 
John Chambers <{adelie,ima,maynard,mit-eddie}!minya!{jc,root}> (617/484-6393)

You can't make a turtle come out.
	-- Malvina Reynolds