Welcome! Log In Create A New Profile

Advanced

Re: знак '$' в директиве set $var "value"

Maxim Dounin
March 24, 2010 01:02PM
Hello!

On Wed, Mar 24, 2010 at 12:03:01PM -0400, zuborg wrote:

> Нужно задать переменную $salt2 с таким вот значением '$1$EgMajByp$' (три знака '$' внутри)
>
> set $salt2 '$1$EgMajByp$';
>
> Но парсер упорно считает знак '$' за начало имени переменной и никак не могу найти возможности этого избежать ;(
> Искейпы через '\' не работают, разные виды кавычек не помогают...
> В сорцах парсинг зарыт слишком глубого для меня - не нашел где пропатчить ;(

Патчить - в ngx_http_script.c. В качестве workaround'а можно
засунуть значение в какой-нибудь map (ну или символ '$' в
какой-нибудь map).

> Вариантов решения вижу три (для патча):
> 1 - прикрутить искейп через '\'
> 2 - сделать спец переменную $$ в которой будет храниться символ '$', тогда достаточно будет продублировать $ чтоб в значении оказался этот символ
> 3 - отключить парсинг для значения, заключенного в одинарные кавычки (как в перле)

1 или 2.

Кавычки обрабатываются на уровне парсинга конфига и в нужное место
просто не доберутся, так что это совсем не вариант.

Но вообще там в этом месте много чего хорошо бы переделать.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

знак '$' в директиве set $var "value"

zuborg March 24, 2010 12:03PM

Re: знак '$' в директиве set $var "value"

Maxim Dounin March 24, 2010 01:02PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 170
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready