Visit Our UNIX and Linux User Community

Difference between ksh,bash and different shells.

Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Answers to Frequently Asked Questions Difference between ksh,bash and different shells.
# 1  
Old 12-07-2003
Difference between ksh,bash and different shells.

Hello Everyone,
Can someone please tell me the key difference between the different shells availabe i.e. ksh,bash,(i don't know the others ones. Smilie
# 2  
Old 12-07-2003
Hard to read here I think since the spacing is off. Here is the

Shell features

This table below lists most features that I think would make you
choose one shell over another. It is not intended to be a definitive
list and does not include every single possible feature for every
single possible shell. A feature is only considered to be in a shell
if in the version that comes with the operating system, or if it is
available as compiled directly from the standard distribution. In
particular the C shell specified below is that available on SUNOS 4.*,
a considerable number of vendors now ship either tcsh or their own
enhanced C shell instead (they don't always make it obvious that they
are shipping tcsh.
                                     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
   L      The readline library must be linked into the shell to enable
          this Feature.
Notes to the table above

    1. This feature was not in the orginal version, but has since become
       almost standard.
    2. This feature is fairly new and so is often not found on many
       versions of the shell, it is gradually making its way into
       standard distribution.
    3. The Vi emulation of this shell is thought by many to be
    4. This feature is not standard but unoffical patches exist to
       perform this.
    5. A version called 'pdksh' is freely available, but does not have
       the full functionality of the AT&T version.
    6. This can be done via the shells programmable completion mechanism.
    7. Only by specifing a file via the ENV environment variable.

Code tags added for readability --- Perderabo

Last edited by Perderabo; 12-07-2003 at 02:24 PM..
These 2 Users Gave Thanks to google For This Post:
# 3  
Old 12-09-2003

Hello to the user google,
yes the link gave me an indepth knowledge about different shells. But in there i came across some unknown names for instance:
TENEX-style completion
System V Bourne Shell (by this time the BSD and System V versions had got slightly different).
GNU project

Can you give me some insight for the above mentioned names?

Thank you Smilie
# 4  
Old 12-09-2003
Originally posted by a25khan
TENEX-style completion
System V Bourne Shell (by this time the BSD and System V versions had got slightly different).
GNU project
Can you give me some insight for the above mentioned names?
Thank you Smilie
POSIX - Portable Operating Standards Interface
Although originated to refer to the original IEEE Std 1003.1-1988, the name POSIX more correctly refers to a family of related standards: IEEE Std 1003.n (where n is a number) and the parts of ISO/IEC 9945. The term POSIX was originally used as a synonym for IEEE Std 1003.1-1988. A preferred term for that standard, POSIX.1, emerged. This maintained the advantages of readability of the symbol ``POSIX'' without being ambiguous with the POSIX family of standards.

TENEX style completion - is a type of command line editing where the words being typed are matched and then completed (if a match is found) by the shell

GNU Project - (GNU's Not Unix) - is a project sponsored by the the "Free Software Foundation". Great site, lots available to you. Check them out. GNU Project
This User Gave Thanks to google For This Post:
# 5  
Old 12-09-2003

Thank you for posting such a great shell comparison matrix. Very useful.


Thank you for formatting with the 'code' tags.

# 6  
Old 12-10-2003

Google you are the man! Smilie
Thanks for your answers, i learned a lot Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #791
Difficulty: Easy
Logic gates cannot be used to store data.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to call exeute multiple bash shells from one master shell?

I have few bash shells, which i want to run sequentially, how to create a shell file, and execute/call one after other shell file. I am very new to shell programming. Bult some and running individually and also with crontab scheduler. never had a shell calling other shells, kindly would like... (2 Replies)
Discussion started by: cplusplus1
2 Replies

2. Shell Programming and Scripting

Difference between shells

ple tell me What is the diff between ksh,sh,bash and csh (1 Reply)
Discussion started by: Boby120677
1 Replies

3. UNIX for Dummies Questions & Answers

Differences in BASH and ASH shells regarding if command?

Guys I now have a script that's working in a BASH environment, however one line doesn't appear to be working on an embedded device that has a busybox therefore ASH shell. I've googled but there's very little I can find regarding the ASH shell. In BASH the following line works... if ] ;... (6 Replies)
Discussion started by: Bashingaway
6 Replies

4. UNIX for Dummies Questions & Answers

Difference in command syntax different shells

hi, i am aa unix amateur and i am using tsh, csh and bash most of the time. i have been looking over the net to find a summary of the differences in command syntax for example: in csh and tsh you do alias whatday date while in bash and ksh you do alias whatday=date i just want more... (2 Replies)
Discussion started by: hobiwhenuknowme
2 Replies

5. Shell Programming and Scripting

Bash shells communication

Hello all, I have the following problem. In a Bash shell I run a program (I don't have the source code) which will execute some steps. At every step the program will wait for a user input. So I would like that another script which is running on a different shell will send these input togheter with... (4 Replies)
Discussion started by: alohisius
4 Replies

6. Shell Programming and Scripting

Interacting with two BASH shells

Hi. I'm working with two BASH shells in order to perform two tasks. For simplicity, suppose that at Shell #1 I'm executing this program: sleep 100 whose PID is 263. Meanwhile Shell #2 is waiting for its termination to follow with a second one. I tried with: wait 263 # Script for second... (4 Replies)
Discussion started by: hresquivelo
4 Replies

7. Shell Programming and Scripting

Difference in Shells

Hi, What is the difference between Bourne,Korn shell, C shell, BASH? Thanks (1 Reply)
Discussion started by: welldone
1 Replies

8. Shell Programming and Scripting

Killing parent shells from subshells (KSH)

Hi all, I have a shell script which calls other shell scripts, depending on the input. Within, I have a command which calls (ie. ksh Normally, we use the exit function to terminate a shell. However, if I choose to call exit from, I will return to the parent shell who... (4 Replies)
Discussion started by: rockysfr
4 Replies

9. Shell Programming and Scripting

Strange behavior from 'read' statements. (ksh - but could be same on other shells)

I'm getting rather frustrated with an interactive script I'm writing. The script is divided up, with section for setting variable at the top, then functions (which make up most of the script) then basically a line at the end which calls the first function- the program moves between the... (5 Replies)
Discussion started by: alexop
5 Replies

10. BSD

BSD, Bash and Shells?

When I use Mac OS X's Terminal the UI is some what easier than that of Linux... I this just a shell or something because using Bash is a pain in RH's Linux 9. It's so sensitive about case etc. ??? In that way what is the shell that OS X uses as it's default Bash is on OS X (OK Duh) and... (3 Replies)
Discussion started by: RedVenim
3 Replies

Featured Tech Videos