Как решить проблему с экранированием?

пишу скрипт на баше но выбор переменных с конфига приходится делать на пхп
и все здорово до того места где я впихиваю переменную

Обьявляем там все дела
#!/bin/sh
SITEDIR="/home/bitrix/ext_www"                     
DBCONN="bitrix/php_interface/dbconn.php"            
TMPDIR="/var/backup/site"       
.....


работает
DBPASS=$(/bin/php -r 'include "/home/bitrix/ext_www/site.ru/bitrix/php_interface/dbconn.php"; echo "$DBPassword";')


не работает
DBPASS=$(/bin/php -r 'include "$SITEDIR/$ELEMENT/$DBCONN"; echo "$DBPassword";')


Поскольку переменные остаются ТЕКСТОМ
ВЫВОД /bin/php -r 'include "$SITEDIR/$ELEMENT/$DBCONN"; echo "$DBPassword";
связано это с ' 'насколько я понимаю и че делать?
заменить их на двойные я не могу, не сработает пхп
экранировать тоже не помогает.
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
DBPASS=$(/bin/php -r "include '$SITEDIR/$ELEMENT/$WEB/$DBCONN'; echo \$DBPassword;")


Используйте двойные кавычки
bash переменные внутри выражения пойдут как $VAR а переменные PHP с обратным слешем перед $ - \$DBPassword
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
А из откуда PHP возмёт все эти значения? Где, когда они были определены?
Ну так вот их и надо назначать прямо в этом inline-скрипте, ПЕРЕД использованием.

Проверять через: /bin/php -r 'var_dump($SITEDIR);'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы