Script Help

Rick Stevens rstevens at vitalstream.com
Thu Nov 9 01:08:28 UTC 2006


On Wed, 2006-11-08 at 17:28 -0600, inode0 wrote:
> On 11/8/06, Rick Stevens <rstevens at vitalstream.com> wrote:
> > The standard way of forcing an environment variable into a script
> > (without doing an "export VARNAME") is to put it on the command line
> > that invokes the script:
> >
> >         $ VARNAME="data" path-to-script.sh
> >
> > Then in the script:
> >
> >         ...
> >         if [ x$(VARNAME) = "xdata"]; then
> >            do something
> >         fi
> >
> > If you want the shell to export some variable, then use
> >
> >         declare -x SVARNAME
> >
> > _IN_ the script to export it.  For example, if "fred.sh" contained:
> >
> >         #! fred.sh - Show use of variables
> >         if [ x$(INVAR) = "xdata" ]; then
> >             export -x OUTVAR
> 
> export -x? declare -x? typeset -x?
> 
> >             OUTVAR="INVAR was set"
> >             exit 0
> >         else
> >             exit 1
> >         fi
> >
> > and you ran:
> >
> >         # INVAR="data" ./fred.sh
> >
> > Then fred.sh would set a return code of 0 and the environment variable
> > "OUTVAR" would contain the string "INVAR was set".  If you ran:
> >
> >         # ./fred.sh
> >
> > it would return 1 and "OUTVAR" would not be defined.
> 
> It appears you are suggesting setting a variable in the environment of
> the parent process via exporting it in the child process. My brain is
> hurting this evening but I think the exported variable in the script
> would only be exported to the environment of any child processes it
> creates?!

Ah, you're right.  However, if the variable exists BEFORE the script is
called, the script can modify its contents and it'll persist.

----------------------------------------------------------------------
- Rick Stevens, Senior Systems Engineer     rstevens at vitalstream.com -
- VitalStream, Inc.                       http://www.vitalstream.com -
-                                                                    -
-            We look for things.  Things that make us go!            -
----------------------------------------------------------------------




More information about the Redhat-install-list mailing list