ksh and sh


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers ksh and sh
# 1  
Old 05-04-2007
ksh and sh

What is the difference between a script starting with:

#!/bin/ksh

and

#!/bin/sh


thanks
# 2  
Old 05-04-2007
Quote:
Originally Posted by Elidas
What is the difference between a script starting with:

#!/bin/ksh

and

#!/bin/sh


thanks
ksh is korn shell.
Sh is bourne shell.

Script starting with #!/bin/ksh is executed by Korn shell
Script starting with #!/bin/sh is executed by Bourne shell
# 3  
Old 05-04-2007
Quote:
ksh is korn shell.
Sh is bourne shell.
ok, and what is korn and bourne? it sounds like the very best friends one should have at unix (sorry I am a noob at unix)

The problem is that I have that simple script here:

Quote:
#!/bin/ksh
rem Filename: sysdba.sh
echo "Users that can startup, shutdown and admin Oracle Databases:"
echo
grep `grep ^dba /etc/group | cut -d: -f3` /etc/passwd
and I am not sure if I have to put ksh or sh in the first line.
# 4  
Old 05-04-2007
Quote:
Originally Posted by Elidas
ok, and what is korn and bourne? it sounds like the very best friends one should have at unix (sorry I am a noob at unix)

The problem is that I have that simple script here:



and I am not sure if I have to put ksh or sh in the first line.
Which first line do you mean? The delaration at the top means this script will run as a ksh script. The script definition effects the syntax in the script.
# 5  
Old 05-04-2007
The file is sysdba.sh and the first line of the file is #!/bin/ksh
# 6  
Old 05-04-2007
the #!/bin/ksh at the top of the file define what the following commands in the script use as an interpreter, in this case /bin/ksh (the korn shell)

you can put practically any interpretive shell command there, i.e.

#!/usr/bin/awk for awk
#!/usr/bin/perl for perl

and so on. putting a ':' there will mean use the default shell

the difference between sh and ksh (bourne and korn) is mostly functionality. i.e. ksh has variable substitutions, dimensioned arrays, etc
# 7  
Old 05-07-2007
Also good to know is anything written for bourne shell can run in korn shell. As TinWalrus stated, korn shell has more functionality.

Now the #! ( pronounced Shebang ) line of the script just tells the script what shell to use when executing. So say you use bourne shell and have a script that uses functionality of korn shell you could run the script in your bourne shell provided you have included the line #!/usr/bin/ksh
If you didn't include this, your script might return an error.

( Thanks for the correction reborg. )

Last edited by lazytech; 05-07-2007 at 12:24 PM.. Reason: Incorrect statement. Thanks for the catch reborg!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ksh

Hi Dears kindly I am new here ...I want to ask your help ... I want to write AWK command when enter date like 20140129 plus 9 then it gives me 20140207 I wrote below but the result was wrong #!/bin/ksh echo "please input the data:" read a if echo $a|awk '{if... (15 Replies)
Discussion started by: shaho87
15 Replies

2. Shell Programming and Scripting

ksh help

Hi, I have command like this with ooutput : unix>tnsping abc TNS Ping Utility for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Production on 17-AUG-2011 17:06:11 Copyright (c) 1997, 2007, Oracle. All rights reserved. Used parameter files: /opt/oracle/network/admin/sqlnet.ora ... (19 Replies)
Discussion started by: talashil
19 Replies

3. Shell Programming and Scripting

different behaviour for ksh and ksh -x

I'm getting different behaviour when executing below script in debug option. $ cat ss.ksh ff=$(pwd) echo " ff : $ff" $ ksh ss.ksh ff : /tmp $ ksh -x ss.ksh + + pwd ff= + echo ff : ff : I was getting this behaviour in my actuall script i'm able to reproduce this in simple script... (4 Replies)
Discussion started by: luckybalaji
4 Replies

4. UNIX for Dummies Questions & Answers

Difference Between executing llike ./myscript.ksh and . ./myscript.ksh

Hi , What is the diffence between executing the script like ./myscript.ksh . ./myscript.ksh I have found 2 difference but could not find the reason 1. If i export a variable in myscript.ksh and execute it like . ./myscript.ksh the i can access the other scripts that are present in... (5 Replies)
Discussion started by: max_hammer
5 Replies

5. Shell Programming and Scripting

KSH script to run other ksh scripts and output it to a file and/or email

Hi I am new to this Scripting process and would like to know How can i write a ksh script that will call other ksh scripts and write the output to a file and/or email. For example ------- Script ABC ------- a.ksh b.ksh c.ksh I need to call all three scripts execute them and... (2 Replies)
Discussion started by: pacifican
2 Replies

6. Shell Programming and Scripting

Need help on ksh

1. Script using bash #!/bin/bash a=4294967296 (( b=$a / 2 )) echo "$a" echo "$b" *** output *** 4294967296 2147483648 2. Script using ksh #!/bin/ksh a=4294967296 (( b=$a / 2 )) echo "$a" echo "$b" *** output *** 4294967296 (3 Replies)
Discussion started by: gautam.shrestha
3 Replies

7. Shell Programming and Scripting

Help with KSH

Hi, I need some help with the Ksh scripting.... I have a Script call Mail.ksh which calls Crank.ksh which calls Readdates.ksh whoch calls mindiff.ksh the output of mindiff.ksh and Readdates.ksh are wirtten to a text file... Here is how each file is called or executed... ./Mail.ksh 30... (3 Replies)
Discussion started by: bhagya2340
3 Replies

8. Shell Programming and Scripting

import var and function from ksh script to another ksh script

Ih all, i have multiples ksh scripts for crontab's unix jobs they all have same variables declarations and some similar functions i would have a only single script file to declare my variables, like: var1= "aaa" var2= "bbb" var3= "ccc" ... function ab { ...} function bc { ... }... (2 Replies)
Discussion started by: wolfhurt
2 Replies

9. Shell Programming and Scripting

tracing a ksh script within a ksh script

I normally trace a script with the ksh -x <script name> and redirect strderr to file. But if you have a script like the examble below...... vi hairy bear=`grep bear animals` if then ksh more_animals fi If I ksh -x hairy it won't trace "more_animals" unless I put a -x in it. Is... (1 Reply)
Discussion started by: shorty
1 Replies

10. Shell Programming and Scripting

executing a ksh script from another ksh script

Hi, I'm new to unix scripting.How can i call a script from another script. I have a.ksh and b.ksh .I have to call b.ksh from a.ksh after it is successfully exceuted. I tried using #!/bin/ksh -x in a.ksh and at the end i have used /path/b.ksh My problem is it is executing only a.ksh.it... (6 Replies)
Discussion started by: ammu
6 Replies
Login or Register to Ask a Question