Cannot exit from a function?


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Cannot exit from a function?
# 1  
Old 08-10-2011
Cannot exit from a function?

Hi,
Is there a way to exit from a subcommand, which is a function in my example below?

Code:
 
#!/bin/ksh
 
function exitFunction {
    if [[ $1 -eq 1 ]]; then
        echo "success"
    elif [[ $1 -eq 0 ]]; then
        echo "failed"
        exit 1    # the exit problem
    fi
    exit 0
}
 
testVar=`exitFunction 1`
echo $testVar
 
testVar2=`exitFunction 0`
echo $testVar2
 
echo "this message should not be shown."
exit 0


The result of my script:
Code:
 
success
failed
this message should not be shown.

It should exit right after the "failed" message, but it it's not.

I appreciate your help.

Last edited by chstr_14; 08-10-2011 at 08:58 AM..
# 2  
Old 08-10-2011
You execute your function in a subshell (`...`) so it exits from there into the current shell
If you execute your function like this:
Code:
exitFunction 1
echo $?

you will exit from the script. You can do something like this:
Code:
testVar=`exitFunction 1`
test $? -ne 0 && exit 1


Last edited by yazu; 08-10-2011 at 09:29 AM..
# 3  
Old 08-10-2011
That is a wasted fork.

There's a special syntax for exiting from a subroutine, called return. It works like exit, it can take a value, but it doesn't end the script.

return is also used to exit from a sourced script.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Function - Make your function return an exit status

Hi All, Good Day, seeking for your assistance on how to not perform my 2nd, 3rd,4th etc.. function if my 1st function is in else condition. #Body function1() { if then echo "exist" else echo "not exist" } #if not exist in function1 my all other function will not proceed.... (4 Replies)
Discussion started by: meister29
4 Replies

2. Programming

exit function doubts

At many places in program I see exit() being called with 2 passed as parameter to it. exit(2); What does this 2 stands for? Can I get a list all such parameters to exit? (6 Replies)
Discussion started by: rupeshkp728
6 Replies

3. Shell Programming and Scripting

Replacement of exit function

I am reading multiple numbers from user and getting its respective string value from the One.txt.But while putting this text value to the two.txt file , i want to check that if this string already there in the file , if the string already exists in the two.txt file .....the string will be ignored.... (1 Reply)
Discussion started by: jalpasoni
1 Replies

4. Shell Programming and Scripting

After exit from function it should not call other function

Below is my script that is function properly per my conditions but I am facing one problem here that is when one function fails then Iy should not check other functions but it calls the other function too So anyone can help me how could i achieve this? iNOUT i AM GIVING TO THE... (1 Reply)
Discussion started by: rohit22hamirpur
1 Replies

5. Shell Programming and Scripting

Exit from function

Hi, I just want to exit from function if some condition doesnt meet then control should go back to main program and start running from where it left.. When i used "exit" inside the function, its simply exited from entire script and it didnt run anymore.. Any idea how to do this.. Thanks... (3 Replies)
Discussion started by: nram_krishna@ya
3 Replies

6. Shell Programming and Scripting

exit from function

Hi all, My kshell code is not working, when I use a function to return something. But when I use the same function as without returning any values, it is working. Pls help me here. Code1 : func1 () { y=`echo $x | grep XXX| cut -f 2 -d ' '` if ; then exit 100 ... (2 Replies)
Discussion started by: poova
2 Replies

7. Programming

capturing enter and exit of every function

If I have a "Hello World" function (just prints that) and a similar "Goodbye World" function... is there a way (maybe a compiler option?) that I can get them to be executed directly as the absolute first and last things run in every function call. So for example, the following code: int foo()... (5 Replies)
Discussion started by: jjinno
5 Replies

8. UNIX for Dummies Questions & Answers

EXIT from a Program not from the function..

Hi, I want a command in unix shell script which will exit my whole program, not only from the function it's using. For e.g: $1 == "m_who" && $4 == "Extrnl Vendor" { print "You don have access" exit (0); } If this error is showing on the screen, then nothing should not... (9 Replies)
Discussion started by: ronix007
9 Replies

9. Shell Programming and Scripting

exit shell script from function

Hi all, I have tried to put a exit 0 statement within a function I have created in the shell script but it doesn't seem to exit out of the script? Can someone tell me why? And is there any other way to exit out of the script from within a function? Thanks! (1 Reply)
Discussion started by: nvrh7
1 Replies

10. Programming

How to get exit value of an executable that gets called from function?

How to get exit value of an executable that gets called from function? I have an executable called “myexec” which returns 0 on success and different values for different fail scenarios. I need to call this (myexec) executable from “myprog()” function of other executable and get the exit value... (1 Reply)
Discussion started by: sureshreddi_ps
1 Replies
Login or Register to Ask a Question