Exit from sourced script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Exit from sourced script
# 1  
Old 03-04-2009
Question Exit from sourced script

Hello,
I have written a script (say chld.sh). its structure is as follows:

------------------------
#!/bin/sh

usage()
{
echo "chld.sh <param1> <param2>"
exit 0
}

chk_param_1()
{
case $param1 in
c) export PATH=$PATH:/home_a/bin/execs;;
d) export PATH=$PATH:/home_b/bin/execs;;
*) usage;;
esac
}

chk_param_2()
{
echo "Chk Param 2"
}

clear
param1=$1
param2=$2
chk_param_1
chk_param_2
------------------------

Now I source this script, as I want the new PATH variable in my current environment. Hence I give a alias in my environment as
alias set_path='. ~/chld.sh'

Now when I call the script as:
set_path c ........it works fine
set_path d..........also works fine.

But if I give "set_path e"......it displays the usage and EXITS/LOGOUTS from my parent shell i.e. the main shell.

I know the reason is coz due to sourcing, it runs the chld.sh in the current shell and not another subshell.
But please tell me how to do this.

Whenever I display "usage".....i dont want to continue ahead in the script.
Simply come out of this script.

Please HELP!!

Last edited by angad.makkar; 03-04-2009 at 05:49 AM..
# 2  
Old 03-04-2009

In a sourced script, use return rather than exit.
# 3  
Old 03-04-2009
Well return works amazingly well.

Thanks a lot.

Mods....please close this thread as the answer given is the best!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Preloading open() for files sourced by tcsh

I am overriding the file open system calls (open, open64, fopen, fopen64, freopen, freopen64) in a dynamic library and setting LD_PRELOAD to point to that library. Here is a sample script I'm testing this on - #!/bin/tcsh source testcsh1.csh source testbash1.sh On RHEL 5.7 (tcsh 6.14.00), the... (2 Replies)
Discussion started by: endgame
2 Replies

2. Shell Programming and Scripting

Return: can only `return' from a function or sourced script

Not sure where the problem is. I can run the script without any issue using the following command. . /opt/app/scripts/cdc_migration.sh But it fails with the below error when I try it this way /opt/app/scripts/cdc_migration.sh /opt/app/scripts/cdc_migration.sh: line 65: return: can only... (1 Reply)
Discussion started by: svajhala
1 Replies

3. Shell Programming and Scripting

How to capture the exit code of a shell script in a perl script.?

hi, i want to pop up an alert box using perl script. my requirement is. i am using a html page which calls a perl script. this perl script calls a shell script.. after the shell script ends its execution, i am using exit 0 to terminate the shell script successfully and exit 1 to terminate the... (3 Replies)
Discussion started by: Little
3 Replies

4. Shell Programming and Scripting

How to capture exit code of child script and send it to parent script?

#!/usr/local/bin/bash set -vx /prod/HotelierLinks/palaceLink/bin/PalacefilesWait /prod/HotelierLinks/palaceLink/bin/prodEnvSetup 03212013 & if then echo "fatal error: Palace/HardRock failed!!!!" 1>&2 echo "Palace Failed" | mail -s "Link Failed at Palace/HardRock" -c... (1 Reply)
Discussion started by: aroragaurav.84
1 Replies

5. Shell Programming and Scripting

How to get the exit status of a command in nner script to the outer script?

Hi all, I have a shell script inside which i am executing another shell script. In the inner script im executing a command. i want the status of that command in the outer script to perform some validations. How to get its status please help!!1 Im using ksh. (2 Replies)
Discussion started by: Jayaraman
2 Replies

6. Shell Programming and Scripting

Error Installing Env::Sourced

Hello, I am trying to install Env::Sourced and i get the following error. sh: source: not found sh: include.sh: not found Unable to determine your shells source program, typically 'source' or '.' How can i overcome this? Best Regards, Christos (3 Replies)
Discussion started by: chriss_58
3 Replies

7. Shell Programming and Scripting

How to grep sql error in shell script and exit the script?

I need help in the following script. I want to grep the sql errors insert into the error table and exit the shell script if there is any error, otherwise keep running the scripts. Here is my script #!/bin/csh -f source .orapass set user = $USER set pass = $PASS cd /opt/data/scripts echo... (2 Replies)
Discussion started by: allinshell99
2 Replies

8. Shell Programming and Scripting

Quitting from a script, either sourced or not

This is a very simple problem, I am wondering why I can find no answer anywhere... I have a script that can be run either sourced or not. This script has some place where it needs to quit execution (e.g., when an error is found) If I "exit", the sourced call would exit the parent shell, but... (7 Replies)
Discussion started by: MadMage
7 Replies

9. Shell Programming and Scripting

KSH - Sourced file location

The sample scripts below, I am looking for the location of the sourced b.sh file. The b.sh file is source by multiple files, so it is not feasible to rely on a "global" variable or passed argument. Is there any way to determine the location of b.sh within b.sh? a.sh #!/bin/ksh echo "a:... (11 Replies)
Discussion started by: Al262
11 Replies

10. OS X (Apple)

which file is sourced by bash on login (Mac OS X 10.5.3)?

Hi: So my current Python (2.52) rig is not working as intended. "echo $PATH" in bash gives me 'X'" that's not what i want, so i need to change my path. To do that, there appeared to be four choices (all in my ~/ directory--note: I'm root, it's my Mac, but i'm in a user account): .profile... (2 Replies)
Discussion started by: Alex_Land
2 Replies
Login or Register to Ask a Question