[comp.unix.shell] ksh vs csh

morgan@ogicse.ogi.edu (Clark O. Morgan) (06/21/91)

In article <PD.91Jun19125339@powys.x.co.uk> pd@x.co.uk (Paul Davey) writes:
>-> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>
>>>Why do *you* use csh?  What are the advantages (please be specific and
>>>objective) of csh over ksh?
>
>Another advantage is that csh is more likely to be present, I work on
>many machines, and like as standard an environment as is practicable.
>
>Also ksh doesn't have the ability to refer to !-5:3 (not that I do
>this very often but !131$ or !132* are very useful.

How true.  Also, csh's "!?" history notation is extremely useful.  I
use ksh every day and hope never again to be forced to use "bare" csh
(command line editing is quite a time saver).  But the absence of the
history features you mentioned (and "!?") is irritating.

Fortunately, there is an alternative.  The GNU shell, bash, supports
both command line and history editing (ala ksh) _and_ the csh history
recall syntax.  Since bash sources are available via FTP, you can place
this shell on every machine you use.  I suspect I will be switching to
bash very soon....
-- 
Clark O. Morgan     morgan@cse.ogi.edu     ...!uunet!ogicse!morgan

s902113@minyos.xx.rmit.oz.au (Luke Mewburn) (06/21/91)

morgan@ogicse.ogi.edu (Clark O. Morgan) writes:

>In article <PD.91Jun19125339@powys.x.co.uk> pd@x.co.uk (Paul Davey) writes:
>>-> crash@ckctpa.UUCP (Frank J. Edwards) writes:
>>
>>>>Why do *you* use csh?  What are the advantages (please be specific and
>>>>objective) of csh over ksh?
>>
>>Another advantage is that csh is more likely to be present, I work on
>>many machines, and like as standard an environment as is practicable.
>>
>>Also ksh doesn't have the ability to refer to !-5:3 (not that I do
>>this very often but !131$ or !132* are very useful.

>How true.  Also, csh's "!?" history notation is extremely useful.  I
>use ksh every day and hope never again to be forced to use "bare" csh
>(command line editing is quite a time saver).  But the absence of the
>history features you mentioned (and "!?") is irritating.

>Fortunately, there is an alternative.  The GNU shell, bash, supports
>both command line and history editing (ala ksh) _and_ the csh history
>recall syntax.  Since bash sources are available via FTP, you can place
>this shell on every machine you use.  I suspect I will be switching to
>bash very soon....

Bash is nice is you are used to sh/ksh. I'm not...
I tried bash, and thought "wow!.. this has got
command line editing, and filecompletion" (which,
BTW, our version of csh has...).
  My advice is:
If you like sh (more specifically) ksh:   Use bash
If you like csh : Use Tcsh...

I prefer tcsh, but bash is just about the same in the
options/features available :-)

>-- 
>Clark O. Morgan     morgan@cse.ogi.edu     ...!uunet!ogicse!morgan

det@hawkmoon.MN.ORG (Derek E. Terveer) (06/22/91)

morgan@ogicse.ogi.edu (Clark O. Morgan) writes:

>The GNU shell, bash, supports
>both command line and history editing (ala ksh) _and_ the csh history
>recall syntax.  Since bash sources are available via FTP, you can place
>this shell on every machine you use.

Unfortunately, bash does have a few features that are in itself irritating to a
ksh user.  For example, no support for the ksh "r pattern" command to repeat a
command starting with "pattern".  The kill character is *hardcoded* to be ^U!
Why this is, i haven't the foggiest.  There are other nuances that seem rather
minor and could be easily fixed, but aren't.  I'll stick to ksh.
-- 
Derek "Tigger" Terveer	det@hawkmoon.MN.ORG -- U of MN Women's Lax
I am the way and the truth and the light, I know all the answers; don't need
your advice.  -- "I am the way and the truth and the light" -- The Legendary Pink Dots

crash@ckctpa.UUCP (Frank J. Edwards) (06/23/91)

In article <23109@ogicse.ogi.edu> morgan@ogicse.ogi.edu (Clark O. Morgan) writes:
>In article <PD.91Jun19125339@powys.x.co.uk> pd@x.co.uk (Paul Davey) writes:
>>Also ksh doesn't have the ability to refer to !-5:3 (not that I do
>>this very often but !131$ or !132* are very useful.
>
>How true.  Also, csh's "!?" history notation is extremely useful.  I
>use ksh every day and hope never again to be forced to use "bare" csh
>(command line editing is quite a time saver).  But the absence of the
>history features you mentioned (and "!?") is irritating.

But what about (in VI command editing mode) "<ESC>/" to perform an interactive
search of the command history?  Isn't interactive preferable to non-interactive?
Especially since you can hit "n" and search for the next one if the current
one is incorrect?

>Clark O. Morgan     morgan@cse.ogi.edu     ...!uunet!ogicse!morgan

So far, to summarize the responses I've gotten, the major points seem
to be twofold:

	1)	I've got csh on all the machines at work/home(?)/school

	2)	I'm used to csh and see no reason to change (although most
		replies containing this answer admitted that they gave ksh
		only a brief look-over and it didn't work _The Same_ as csh;
		I'm guessing that this means they didn't know how to configure
		it to suit they're needs, either because time coudln't allow
		time for it or perhaps they decided against ksh at this point
		because of (1), above.)

Thanks net.folks; this has been useful to me and will continue to
sit in the back of my mind as I teach future students.
-- 
Frank J. Edwards		|  "I did make up my own mind -- there
2677 Arjay Court		|   simply WASN'T ANY OTHER choice!"
Palm Harbor, FL  34684-4504	|		-- Me
Phone (813) 786-3675 (voice)	|    Only Amiga Makes It Possible...

chet@thor.INS.CWRU.Edu (Chet Ramey) (06/23/91)

det@hawkmoon.MN.ORG (Derek E. Terveer) writes:

>Unfortunately, bash does have a few features that are in itself irritating to a
>ksh user.  For example, no support for the ksh "r pattern" command to repeat a
>command starting with "pattern".

Nonsense.  The support is there for the `fc' command, all you have to do
is define the alias r as `fc -s' or `fc -e -'.  That's how it's done in
ksh, with the exception that ksh pre-defines the alias.

>The kill character is *hardcoded* to be ^U!

Nonsense again.  Readline, the bash line editing library, has support for
arbitrary key bindings.  Simply bind some other key to "unix-line-discard"
and bind ^U to whatever you like.  In any case, readline will pick up your
kill character from the tty driver and bind that to unix-line-discard for
you.

Chet


-- 
                    ``You shoot John Sununu.  Twice.''

Chet Ramey			  Internet: chet@po.CWRU.Edu
Case Western Reserve University	  NeXT Mail: chet@macbeth.INS.CWRU.Edu

peter@ficc.ferranti.com (Peter da Silva) (06/26/91)

In article <1991Jun23.004301.949@ckctpa.UUCP> crash@ckctpa.UUCP (Frank J. Edwards) writes:
> But what about (in VI command editing mode) "<ESC>/" to perform an interactive
> search of the command history?  Isn't interactive preferable to non-interactive?

Not always. If you're typing multiple commands ahead to the computer you
want a batch-type editor.

I've got ksh on my machine at home, and I used it extensively for several
weekends so I could evaluate it. I much prefer the bourne shell functions
and the bourne shell. If it had a batch-type command editor (it wouldn't
even have to be csh-like.... it'd just have to work in cooked mode, be
scannable by eye (no non-printing characters), and have a similer set of
capabilities.

I see several reasons to change, and I'd do it in a minute if I could type
!-3 !:2-4 | nucpio !?cpio?*.

I find your summary, therefore, missing an important category...
-- 
Peter da Silva; Ferranti International Controls Corporation; +1 713 274 5180;
Sugar Land, TX  77487-5012;         `-_-' "Have you hugged your wolf, today?"