저는 기본 php_admin_value[memory_limit]를 128M에서 512M으로 변경해야 하는 스크립트를 작성 중입니다. CLI 또는 bash 스크립트에서 명령을 실행하면 오류가 발생하지 않지만 실제로 파일에 업데이트가 적용되지 않습니다. 내가 뭘 잘못했나요?
/etc/php-fpm.d/www.conf 파일의 줄은 다음과 같습니다:
;php_admin_value[메모리 제한] = 128M
이것은 내 명령입니다:
sudo sed -i 's/;php_admin_value[memory_limit] = 128M/php_admin_value[memory_limit] = 512M/' /etc/php-fpm.d/www.conf
답변1
sed 정규식에서는 [
다음과 같습니다 .특수 문자소개했다대괄호 표현. 리터럴 문자로 처리하려면 이스케이프해야 합니다. 명확성을 위해 마무리 문구를 생략할 수도 있지만 ]
꼭 필요한 것은 아닙니다.
그래서 비록
$ echo ';php_admin_value[memory_limit] = 128M' |
sed 's/;php_admin_value[memory_limit] = 128M/php_admin_value[memory_limit] = 512M/'
;php_admin_value[memory_limit] = 128M
실패하다,
$ echo ';php_admin_value[memory_limit] = 128M' |
sed 's/;php_admin_value\[memory_limit] = 128M/php_admin_value[memory_limit] = 512M/'
php_admin_value[memory_limit] = 512M
효과가 있었습니다. 당신은 또한 볼 수 있습니다sh 스크립트에서 sed를 사용할 때 어떤 문자를 이스케이프해야 합니까?