Рейтинг:0

sed отлично работает из интерактивной оболочки, но не из скрипта

флаг de

Попытка включить/отключить xdebug в моем док-контейнере php-fpm.

Если я запускаю интерактивную оболочку, используя docker exec my_container bash затем запустите:

sed -i 's/^#zend_extension/zend_extension/' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

или же

sed -i 's/^zend_extension/#zend_extension/' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

Файл /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini имеет # добавлено и удалено, как и ожидалось. Однако мой скрипт делает то же самое:

docker exec my_container bash -c "sed -i 's/^#zend_extension/zend_extension/' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"

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

До сих пор мой сценарий был:

docker exec -it my_container bash -c "cp /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini /tmp/xdebug.ini; sed -i 's/^#zend_extension/zend_extension /' /tmp/xdebug.ini; cp /tmp/xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"

Но я хотел бы докопаться до сути. Это сводит меня с ума.

Примечание: везде, где я говорю docker exec my_container в мой_контейнер на самом деле это пара команд в обратных кавычках, чтобы получить правильный контейнер, я просто говорю мой_контейнер чтобы было понятнее.

Любые идеи?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.