Passing variables between scripts


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing variables between scripts
# 1  
Old 01-11-2008
Passing variables between scripts

Hi all.

I need to pass a value from a script that runs in a sub-shell, back into the calling shell like below (or into script 2 directly):

outer_script
export param=value1

script1 $param
(in script1: export param=value2)

script2 $param
($param is now value1, not value2 like i'd prefer)
end outer_script

I can't get this to work using regular variables and I have read some about shells and sub-shells and variables and I now believe that it's not possible with variables.

I guess I could always use a file to store the value in script1 and then read it in script2 using the file. But if I go this way I'd be forced to have separate files for each user that executes the script so that no conflicts occurr. But then I'd get a lot of files that mess up. I guess I could then remove each file after the script completes but what if the user terminates using Ctrl+C? I'd still have a lot of messy files after a while.

At the moment I'm leaning towards using files, but I thought I'd ask if someone knows another/better way to do this without using files?

This is in Korn Shell
# 2  
Old 01-11-2008
In your script1, you have to return the value, beacause the export is lost at the end of script.

At the end of 'script1', do 'exit $param'

And try this :

Code:
outer_script
export param=value1

param=$(script1 $param)
(in script1: export param=value2)

script2 $param
($param is now value1, not value2 like i'd prefer)

end outer_script

# 3  
Old 01-11-2008
Or try with mkfifo.

Open a queue for reading in the first script, then call second script and write to the queue from the second script. The first script will wait untill it has read something, then continue.
# 4  
Old 01-12-2008
Use sourcing

In order to have the value of a variable from a different script run within a another script, available globally, you need to source the inner script, instead of simply executing it.

Code:

outer_script

export param=value1

source /path/to/script1 
# or use the dot symbol :    .  /path/to/script1
(in script1: export param=value2)

script2 $param
# Now $param will be value2

end outer_script


# Now the new value (value2) of the variable param will be set globally.

Google source command for more info.
# 5  
Old 01-14-2008
Quote:
Originally Posted by rubin
In order to have the value of a variable from a different script run within a another script, available globally, you need to source the inner script, instead of simply executing it.

Google source command for more info.
Thanks a lot, just what I needed!! Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing parameters with spaces between scripts

I have 2 scripts. test.sh, which calls submit2.sh. One of the parameters contains space and is quoted. ((((./submit2.sh Group_1_2_AMS_DAILY_CORE_GRP03 AMS AMS_D 'DAILY REPORT PROCEDURES'; echo $?>&3) | tee 1.log >&4)3>&1) | (read xs; exit $xs)) 4>&1 echo parm 1 = $1 echo parm 2 = $2... (1 Reply)
Discussion started by: andyclam
1 Replies

2. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

3. Shell Programming and Scripting

General question about passing variables among shell scripts

So this is something I've been wondering how to do for a while. Suppose I have two shell scripts a.sh and b.sh script a does some function and outputs to a varable $x . I would then like to take $x into the second function, b.sh, and do a function on it and create some output. So how do you pass... (3 Replies)
Discussion started by: viored
3 Replies

4. Shell Programming and Scripting

Passing variables between sub-scripts

I have written a program for some data analysis. It is gettin long. I would like to restructure it so that i can have a master file which controls multiple subscripts in order to make it easier to understand. I need to be able to define variables in the master script which are used by all three... (2 Replies)
Discussion started by: carlr
2 Replies

5. Shell Programming and Scripting

Passing Arguments in Shell Scripts

Hello everybody! First time posting here:) Right, I am trying to pass arguments in my shell scripts using $1, $2 and $3 etc using if else statement........ This is my shell script which is based on serching the google website #!/bin/sh wget -t1 -E -e robots=off - -awGet.log -T 200 -H... (47 Replies)
Discussion started by: kev_1234
47 Replies

6. Shell Programming and Scripting

Perl parameter passing between scripts

Hi All, I have two perl scripts say A.pl and B.pl. A.pl interacts with Database and pulllls around 20 column-variables, which needs to be used in B.pl . A.pl calls B.pl, I figured out that there exist a limit on number of arguments being passed as command line argument. A.pl writing to a... (3 Replies)
Discussion started by: coolbhai
3 Replies

7. UNIX for Dummies Questions & Answers

Passing variables between scripts...

Hey all, I'm wondering how you pass variable's that are defined in one script to another script that's been called by that first script..... Best regards, Jaz (1 Reply)
Discussion started by: Jazmania
1 Replies

8. Shell Programming and Scripting

Passing and using arguments in Scripts.

I am new to scripting in AIX / UNIX. I have a script that runs 4 other scripts and I want to be able to pass in a agrument that I can check before I run the next script to see if the previous script finished with no errors. Can someone send me an example of this as I'm sure it's pretty easy to... (1 Reply)
Discussion started by: David.Vilmain
1 Replies

9. Shell Programming and Scripting

Passing Vars between scripts

Im running a script that runs scripts within it self and i need to pass vars made in the original script to scripts run within it and the only way i can think to do it is right the string to a file and read the file in the script (4 Replies)
Discussion started by: rcunn87
4 Replies

10. Shell Programming and Scripting

passing variables

Hi, Is there any way to pass variable to a sed script.For awk we have -v option.like that do we have any way to pass variable to a sed script from a awk script or from normal script? Thanx, sounder (1 Reply)
Discussion started by: sounder123
1 Replies
Login or Register to Ask a Question