Re: What can I do in Ksh which cannot be done in Bourne shell? (712 Views)
Reply
Super Advisor
SM_3
Posts: 607
Registered: ‎06-17-2002
Message 1 of 11 (712 Views)
Accepted Solution

What can I do in Ksh which cannot be done in Bourne shell?

Hello again

I have a few books on Bourne and Korn shell scripting.

All I'd like to know is what can I do in a Korn shell which I cannot do in Bourne shell (since at this point they seem similar).

Thanks.
Honored Contributor
Jeff Schussele
Posts: 6,795
Registered: ‎02-18-2002
Message 2 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

Hi SM,

Lots. Too many to list....
Better yet to use the POSIX shell.
Hierarchy is as follows - Bourne is a subset of Korn which is a subset of POSIX shell.

If you really want to tear your hair out use the C-shell or even the tcsh shell......
Or if you're a die-hard penguin-head use bash.

Cheers,
Jeff
PERSEVERANCE -- Remember, whatever does not kill you only makes you stronger!
Honored Contributor
Mark Grant
Posts: 2,712
Registered: ‎04-01-2003
Message 3 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

There's lots you can do in the korn shell that you can't do in a bourne shell. However, you shouldn't be using either. You should be using the posix shell which has all the features of both and more too. Happily, the posix shell on hpux is "sh". If you are using this shell, it is the posix shell and therefore will do everything the korn shell can do.

However, a real bourne shell can't to co-processing, can't do job control (fg, bg, kill %1 etc) can't do maths with "((" and "))", can't use "$(" with ")" instead of backticks, can't do arrays etc etc etc etc
Never preceed any demonstration with anything more predictive than "watch this"
Honored Contributor
John Poff
Posts: 2,448
Registered: ‎05-22-2001
Message 4 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

Hi,

Here is a link to a page that talks about the differences:

http://www.sniffer.net/bookshelf_do_sniffer/unix/ksh/appa_01.htm

JP
Esteemed Contributor
Abdul Rahiman
Posts: 232
Registered: ‎03-23-2004
Message 5 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

Here is a table of functionality comarison between the shells.
sh csh ksh bash tcsh zsh rc es
Job control N Y Y Y Y Y N N
Aliases N Y Y Y Y Y N N
Shell functions Y(1) N Y Y N Y Y Y
"Sensible" Input/Output redirection Y N Y Y N Y Y Y
Directory stack N Y Y Y Y Y F F
Command history N Y Y Y Y Y L L
Command line editing N N Y Y Y Y L L
Vi Command line editing N N Y Y Y(3) Y L L
Emacs Command line editing N N Y Y Y Y L L
Rebindable Command line editing N N N Y Y Y L L
User name look up N Y Y Y Y Y L L
Login/Logout watching N N N N Y Y F F
Filename completion N Y(1) Y Y Y Y L L
Username completion N Y(2) Y Y Y Y L L
Hostname completion N Y(2) Y Y Y Y L L
History completion N N N Y Y Y L L
Fully programmable Completion N N N N Y Y N N
Mh Mailbox completion N N N N(4) N(6) N(6) N N
Co Processes N N Y N N Y N N
Builtin artithmetic evaluation N Y Y Y Y Y N N
Can follow symbolic links invisibly N N Y Y Y Y N N
Periodic command execution N N N N Y Y N N
Custom Prompt (easily) N N Y Y Y Y Y Y
Sun Keyboard Hack N N N N N Y N N
Spelling Correction N N N N Y Y N N
Process Substitution N N N Y(2) N Y Y Y
Underlying Syntax sh csh sh sh csh sh rc rc
Freely Available N N N(5) Y Y Y Y Y
Checks Mailbox N Y Y Y Y Y F F
Tty Sanity Checking N N N N Y Y N N
Can cope with large argument lists Y N Y Y Y Y Y Y
Has non-interactive startup file N Y Y(7) Y(7) Y Y N N
Has non-login startup file N Y Y(7) Y Y Y N N
Can avoid user startup files N Y N Y N Y Y Y
Can specify startup file N N Y Y N N N N
Low level command redefinition N N N N N N N Y
Has anonymous functions N N N N N N Y Y
List Variables N Y Y N Y Y Y Y
Full signal trap handling Y N Y Y N Y Y Y
File no clobber ability N Y Y Y Y Y N F
Local variables N N Y Y N Y Y Y
Lexically scoped variables N N N N N N N Y
Exceptions N N N N N N N Y

Key to the table above.

Y Feature can be done using this shell.

N Feature is not present in the shell.

F Feature can only be done by using the shells function
mechanism.

L The readline library must be linked into the shell to enable
this Feature.

U can see this better at the following web page,
http://64.233.161.104/search?q=cache:HY2sqaQd-u8J:www.faqs.org/faqs/unix-faq/shell/shell-differences...
No unix, no fun
Honored Contributor
harry d brown jr
Posts: 8,418
Registered: ‎12-12-2000
Message 6 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

I don't remember a HISTORY in bourne

And I hate to type

live free or die
harry
Live Free or Die
Super Advisor
SM_3
Posts: 607
Registered: ‎06-17-2002
Message 7 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

cool

thanks folks
Honored Contributor
Mark Grant
Posts: 2,712
Registered: ‎04-01-2003
Message 8 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

I didn't think the bourne shell could cope with large argument lists and I didn't find changeing the prompt particularly difficult with it.
Never preceed any demonstration with anything more predictive than "watch this"
Trusted Contributor
John Kittel
Posts: 402
Registered: ‎07-14-2003
Message 9 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

Unfortunately I didn't get around to browsing the forums today promptly enough to get my response in amongst the first, but better late than never.

The answer is, (with tongue firmly in cheek), from a C.S. standpoint, there is nothing you can do ( i.e. accomplish) in ksh that you can't do in sh ( Bourne or POSIX), or vice versa. You just may have to do (code) some things differently.
Honored Contributor
Bill Hassell
Posts: 14,218
Registered: ‎05-29-2000
Message 10 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

As mentioned, each shell works the way it works so you can do pretty much everything you want to do, just not as conveniently. The Bourne shell is very basic, with lots of restrictions. Generally speaking, a working Bourne shell script will run just fine using the POSIX shell, Korn shell or bash. (technically, Korn and bash are POSIX shells) But as mentioned, there are some very powerful features in POSIX shells. A command history/recall is one of the most popular features.

If you learn Bourne, you'll have some basics but you'll tend to write with Bourne limitations (like PATH=/usr/bin;export PATH, rather than the POSIX construct: export PATH=/usr/bin). Most sysadmins use a POSIX shell so spend most of your time in the Korn shell book. The Korn/Bolsky book is a good reference but does not have a lot of how-to or examples.
Honored Contributor
Muthukumar_5
Posts: 4,030
Registered: ‎06-09-2004
Message 11 of 11 (712 Views)

Re: What can I do in Ksh which cannot be done in Bourne shell?

Hai,

Key difference between the bourne and ksh is,

- aliases
- command name completion
- command history


Regards,
Muthukumar
Easy to suggest when don't know about the problem!
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.