wergio
@wergio
Программист - любитель!

Как напечатать текст в кавычках с помощью SED?

Задача сделать кнопку на сайте, которая будет отправлять команду на сервер для смены параметра user: '0' в config.yml файле. Сайт естественно работает на PHP, а команды отправляются с помощью модуля ssh2.

Если напрямую в терминале написать, всё работает как нужно:
sed -i -e "s/user:.*/user: '1'/g" /config.yml;
Результат: user: '1'

А если кнопкой через сайт, то значение параметра приходит без кавычек.
<?php
api::ssh2('sed -i -e "s/user:.*/user: '1'/g" /config.yml;');
?>


Результат: user: 1
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Zerg89
<?php
api::ssh2('sed -i -e "s/user:.*/user: \'1\'/g" /config.yml;'); 
?>
Ответ написан
shambler81
@shambler81 Куратор тега Linux
Писал тут по поводу седа и как в нем можно обходиться без эти символов вообще
https://klondike-studio.ru/blog/sed-spetssimvoly/
Так же не забывайте что можно всю эту лабуду прогонять через eval
дабы избежать путаницы в баше с ковычками.
Вот пример для "встарых паролей которые могут содержатьлюбые спецсимволы"
eval "$(echo "mysqldump --no-tablespaces -u$DBLOGIN -p'$DBPASS'....
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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