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



@wergio

Задача сделать кнопку на сайте, которая будет отправлять команду на сервер для смены параметра 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


Решения вопроса 0


Ответы на вопрос 2



@Zerg89

<?php
api::ssh2('sed -i -e "s/user:.*/user: \'1\'/g" /config.yml;'); 
?>



@shambler81 Куратор тега Linux

Писал тут по поводу седа и как в нем можно обходиться без эти символов вообще
https://klondike-studio.ru/blog/sed-spetssimvoly/
Так же не забывайте что можно всю эту лабуду прогонять через eval
дабы избежать путаницы в баше с ковычками.
Вот пример для «встарых паролей которые могут содержатьлюбые спецсимволы»
eval "$(echo "mysqldump --no-tablespaces -u$DBLOGIN -p'$DBPASS'....

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *