Variables and includes
Daniel L. Miller
dmiller at amfes.com
Mon Jan 14 04:18:35 UTC 2013
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?
--
Daniel
More information about the nginx
mailing list