03-04-2009
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..
10 More Discussions You Might Find Interesting
1. OS X (Apple)
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
2. Shell Programming and Scripting
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
3. Shell Programming and Scripting
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
4. Shell Programming and Scripting
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
5. Shell Programming and Scripting
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
6. Shell Programming and Scripting
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
7. Shell Programming and Scripting
#!/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
8. Shell Programming and Scripting
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
9. Shell Programming and Scripting
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
10. Shell Programming and Scripting
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
LEARN ABOUT DEBIAN
latd.conf
LATD.CONF(5) File Formats Manual LATD.CONF(5)
NAME
latd.conf - LAT configuration file
SYNOPSIS
/etc/latd.conf
DESCRIPTION
/etc/latd.conf is a shell script (run by /bin/sh) that is run when latd is started up using the latcp -s command.
It contains commands used to customise lat for your site and usually consists of a list of latcp commands.
latd.conf is run with a minimal PATH and a minimal environment. The variable $LATCP points to the latcp binary used to invoke the script.
EXAMPLE
# /etc/latd.conf
# This is a sample configuration file for latd
# it is run as s shell script from latcp -s with a minimal
# environment and PATH. latcp should be invoked using the
# environment variable $LATCP.
#
# You can fiddle with all the latd parameters you like in here,
# the first service announcement will not be made until this
# script completes.
#
# Set the multicast timeout to 30 seconds
$LATCP -m 30
# Add another login service
$LATCP -A -a ZAPHOD -r 100
# Add a queued reverse LAT service to a printer on a DECserver
$LATCP -A -p /dev/lat/printer -Hdecserver -Vdecserver -Q
# Only advertise our service in groups 1-10 and 200
$LATCP -G 1-10,200
exit
SEE ALSO
latcp(8), latd(8)
LAT Server June 2 2000 LATD.CONF(5)