Using $0 and 'Function' Keyword


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Using $0 and 'Function' Keyword
# 1  
Old 08-25-2008
Using $0 and 'Function' Keyword

Hi all,

I had a query on the usage of $0 in shells. I would appreciate any assistance in this.

We moved from a sun solaris server to a linux server. I ran 2 different pieces on these servers and in one case, the outputs didnt change and in the other case, the outputs were different. The 2 pieces involved defining functions differently.

Case #1
----------------------------------
#!/bin/ksh

echo "Value of $0 outside"

function callme2
{
echo "Value of $0 inside"
}

callme2
----------------------------------

Case #2
----------------------------------
#!/bin/ksh

echo "Value of $0 outside"

callme2()
{
echo "Value of $0 inside"
}

callme2
----------------------------------

Sun solaris output was the same in both cases, as given below.

Value of test.ksh outside
Value of test.ksh inside

But, the linux server gave different outputs.

case #1 output

Value of .//test.ksh outside
Value of callme2 inside

case #2 output

Value of .//test.ksh outside
Value of .//test.ksh inside

Can someone assist me in understanding why these differences exist inspite of the shell remaining the same and also what can be done to prevent this from occurring.

Thank you very much for your time...!!
# 2  
Old 08-26-2008
It has to do with the shell behaviour...
Your first case (solaris...) is the what you would expect from a bourne shell...

The second is what most ksh implementation would give...

The question is when you call callme2, is it or not a $0


All the best
# 3  
Old 08-26-2008
Thanks!

But, doesn't the command '#!/bin/ksh' invoke the korn shell? This was one of the reasons I was so surprised when the shell was giving different results on both servers.
# 4  
Old 08-26-2008
but /bin/ksh wasnt the favorite shell under solaris (but is it now?)
You try your script on a HP-UX and Im sure you will have something like:
Value of test.ksh outside
Value of callme2 inside
and if you used sh on HP-UX you would have the solaris output, unfortunately Im at home now and cant confirm by testing on different platforms.. but Im confident about HPUX...
As said I believe it being more philosophical:
When you call callme2, you agree its like executing a module no? So is it $0?
It depends on your understanding I suppose...
That is maybe also why many courses are given in bourne shell, question of compatibility...
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sorting a text file with respect to Function/Keyword

Hello Experts, I am truly a beginner in shell and perl . Need an urgent help with sorting a file. please help. wouldn't mind whether in perl or shell script. Here are the details. ------------------------------------------------------ Input Text file EX:... (9 Replies)
Discussion started by: pradyumnajpn10
9 Replies

2. Shell Programming and Scripting

Issue in using read keyword twice

Hi, I have a situation where i need to read line by line from a text pad and with each line , i need to take inputs from command line and do some process. Using below code i am not able to use 'read' keyword twice. Can any one please help cat > t.txt a d c > cat > t.ksh while read... (4 Replies)
Discussion started by: Ravindra Swan
4 Replies

3. Shell Programming and Scripting

Search for a Keyword in file and replace another keyword or add at the end of line

Hi I want to implement something like this: if( keyword1 exists) then check if(keyword2 exists in the same line) then replace keyword 2 with New_Keyword else Add New_Keyword at the end of line end if eg: Check for Keyword JUNGLE and add/replace... (7 Replies)
Discussion started by: dashing201
7 Replies

4. Shell Programming and Scripting

Keyword Monitor

Hello, I have a shell script. I would like to add email the curl output. I'd appreciate if you help. Thanks. #!/bin/bash while read -r URL ; do if ] ; then echo "keyword changed!!!!"|mail -s "$URL Alert!!!!" info@test.com; fi;done</root/m/url.txt . (3 Replies)
Discussion started by: tara123
3 Replies

5. Shell Programming and Scripting

paste a keyword

Hello, I have a file with a keyword ccas i want to copy the keyword once in VI and have to paste it in the same file for multiple time,let's say 700 times,i dont know hoe to do it. Kindly help me on this Regards Thelak (2 Replies)
Discussion started by: thelakbe
2 Replies

6. Shell Programming and Scripting

Filter text after keyword

I've got a little problem to solve and can't find a way to solve it. If have text line like the following: keyword1: text1 keyword2: text2 keyword3: text3 Now I need a script or command, which gives me the text for the corresponding keyword. The text can consist of only one or more words.... (5 Replies)
Discussion started by: frankbullitt78
5 Replies

7. Solaris

find keyword

Hi, This is my first post. Please help me. I wanted to find a particular key word in the entire system not in the filename, it should be in the file content. The output should display me... <The filename>, number of times the keyword is repeated. like file1: 2 file2: 4... (3 Replies)
Discussion started by: pointers
3 Replies

8. OS X (Apple)

Keyword Searching

Hi all, I am in the process of building a shell script as part of a auditing utility. It will search a specified directory for keywords and output results of the file path, and line number that the word was found on. I built a test script (shown below) that does just this, but egrep apparently... (0 Replies)
Discussion started by: tmcmurtr
0 Replies

9. Programming

Far Keyword

Hello, What is far keyword in C and for what purpose is it used??? Pls ans. thanx in advance. svh (2 Replies)
Discussion started by: svh
2 Replies

10. Shell Programming and Scripting

Keyword in perl

Hi, I want to know all the keywords in perl as well as their usage. plz provide if u have any URL regarding this. In my perl script first 2 lines are 1)use DBI; 2)require "hello.pl"; what is the use these two statements. i thought the second one may be like include . Thanks in advance.... (1 Reply)
Discussion started by: sarwan
1 Replies
Login or Register to Ask a Question