Variables and includes
Maxim Dounin
mdounin at mdounin.ru
Mon Jan 14 11:09:30 UTC 2013
Hello!
On Sun, Jan 13, 2013 at 08:18:35PM -0800, Daniel L. Miller wrote:
> On 1/13/2013 6:50 PM, Maxim Dounin wrote:
> >Hello!
> >
> >On Sat, Jan 12, 2013 at 09:40:14PM -0800, Daniel L. Miller wrote:
> >
> >>Is it possible to use a variable from one configuration in a
> >>included config file? Example:
> >>
> >>set $a = "hello";
> >>include test.conf;
> >>
> >>[test.conf]
> >>if ($a = "hello") {
> >> set $a = "world";
> >>}
> >># something that works with $a
> >>
> >>Within the scope of the commands of test.conf, will $a be "hello" or
> >>"world"? Currently my usage like this gives me a, "using
> >>unitialized variable" warning.
> >The "include" directive works during configuration parsing and
> >completely transparent to everything else. That is, you may set a
> >variable in one file and then use it in an included file, it is
> >expected to work fine.
> >
> >On the other hand, example you've provided is syntactically
> >invalid and will result in the following error during
> >configuration parsing:
> >
> >nginx: [emerg] invalid number of arguments in "set" directive in ...
> >
> >Correct way to write it would be
> >
> > set $a "hello";
> >
> >Note there is no "=" character. See http://nginx.org/r/set for
> >details.
> Shows what happens when you quickly type up an example...thanks for
> catching it.
>
> So I repeat my question - why, given the above example (with correct
> syntax), would I see warnings for "uninitialized variable" for the
> above in the "test.conf", as the variable is declared prior to the
> include statement?
Because of another problem resulted from quick typing? Show the
exact configuration which produces warning for you.
--
Maxim Dounin
http://nginx.com/support.html
More information about the nginx
mailing list