[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Script Help



On 11/8/06, Rick Stevens <rstevens 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]