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