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