Script Help
inode0
inode0 at gmail.com
Wed Nov 8 23:28:28 UTC 2006
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?!
John
More information about the Redhat-install-list
mailing list