The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
passing variable from bash to perl from bash script arsidh Shell Programming and Scripting 10 06-04-2008 12:25 PM
Bash differences on unix's bongobonga UNIX for Dummies Questions & Answers 4 02-02-2008 02:21 PM
Differences between SAN and NAS jigarlakhani Filesystems, Disks and Memory 2 11-15-2003 05:09 PM
differences nis nis+ joerg IP Networking 2 06-24-2002 03:47 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-08-2003
deckard's Avatar
deckard deckard is offline
Registered User
  
 

Join Date: Jul 2002
Location: Ohio
Posts: 135
What are the differences between 'bash' and 'sh'

Hopefully this doesn't come off as too much of a "newbie" question or a flamebait. But I have recently begun working with a Sun Solaris box after having spent the past five years working with RedHat. From what i can tell, thing look fairly similar and the 'man' command is some help. But I've noticed that the default shell is 'sh' and I tend to be more familiar with 'bash' since that's the default in RedHat. I understand that the reason that 'sh' is the defatul for root is that it's statically compiled and available even if the /usr partition is unavailable. But there are features that I like that seem to be missing:
-Arrow up for command history
-Arrays or creating arrays like this: test1=( `ls` )
-Emacs style editing on the command line
Just to name a few. So my question is, how different is 'sh' from 'bash'. I imagine there are things I will have to rewrite in my bash scripts to get them to work under 'sh'. But how much work am I really in for? Are there any good resources online that will lay out the differences or good books that anyone would recommend? I love the O'Reilly book on Bash. Anything similar for 'sh'? Thanks
  #2 (permalink)  
Old 05-08-2003
oombera's Avatar
oombera oombera is offline Forum Advisor  
Registered User
  
 

Join Date: Aug 2002
Location: Cleveland, OH
Posts: 804
http://www.faqs.org/faqs/unix-faq/sh...l-differences/

This FAQ lists the differences between a few different shells. About half-way down is a comparison of which functions are available/unavailable in the different shells.
  #3 (permalink)  
Old 05-08-2003
google's Avatar
google google is offline Forum Advisor  
Moderator
  
 

Join Date: Jul 2002
Location: Atlanta
Posts: 740
In my opinion they are fairly close, but both have commands available to one and not the other, for example substring command is not supported in sh but is in bash ${TEST:$i:1} For arrays, in /sh you use the following syntax

${array} - accesses element 0
${array[i]} accessed element 0 - 1023
${array[*]} and ${array[@]} -uses all elements of the array (list), the difference in the two is that one set is quoted and the other isnt
You can skip the ${ } syntax in sh by using (( array[ ] ))

Personally, I think sh (actually ksh) is better suited for scripting (some may disagree...like I said, just my opinion).

If you want emacs set your EDITOR variable to use emacs. /sh by default uses vi...pretty easy to use once you struggle through the command syntax!!! Use set -o to see what options you have turned on.

To get your history, use ESC-j or ESC-k to scroll up or down. command expansion, hit ESC twice to expand what you are typing on command line. Like bash, you can use / to search your command history.

Plenty other differences Im sure, pick up O'Reilly - UNIX in a Nutshell to see all commands specific to sh.
  #4 (permalink)  
Old 05-08-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9,111
If you like bash a lot, maybe you should just continue to use it. Solaris 8 includes bash in the full distrubution. And bash precompiled for Sun boxes is available at http://www.sunfreeware.com
  #5 (permalink)  
Old 05-08-2003
deckard's Avatar
deckard deckard is offline
Registered User
  
 

Join Date: Jul 2002
Location: Ohio
Posts: 135
google, I am facinated by what you said about setting the EDITOR variable to 'vi'. I tried this but was unable to make use of the ESC-i and ESC-k to peruse the history in 'sh'. I have a feeling I misunderstood something though. (I'm using Solaris 8 BTW) When you mentioned using 'vi', perhaps you weren't talking about editing commands at the 'sh' prompt? Thanks for everyones suggestions.
  #6 (permalink)  
Old 05-08-2003
google's Avatar
google google is offline Forum Advisor  
Moderator
  
 

Join Date: Jul 2002
Location: Atlanta
Posts: 740
I am using HPUX 11.xx my shell is by default ksh

To see what options you have turned on, run the following command:
set -o

Output from my system gave me:
sh ---> set -o
Current option settings
allexport on
bgnice on
emacs off
errexit off
gmacs off
ignoreeof off
interactive on
keyword off
markdirs off
monitor on
noexec off
noclobber off
noglob off
nolog off
nounset on
privileged off
restricted off
trackall off
verbose off
vi on
viraw off
xtrace off
sh --->

If vi is not "on", you can turn it on by running the following command:
set -o vi

After that, verify its on by re-running set -o....then try using ESC-j and ESC-k to see command history..On HPUX at least, the command history and line expansion is a function of vi.
  #7 (permalink)  
Old 05-08-2003
killerserv's Avatar
killerserv killerserv is offline Forum Advisor  
Unix Predator
  
 

Join Date: Dec 2000
Location: Phoenix, AZ
Posts: 670
A nice difrentiation for the shells.

http://www.ugrad.cs.ubc.ca/~cs219/Co...fferences.html
Closed Thread

Bookmarks

Tags
solaris

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 04:30 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0