使用Sed修改php内存限制

使用Sed修改php内存限制

我正在编写一个脚本,需要将默认的 php_admin_value[memory_limit] 从 128 M 修改为 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 时需要转义哪些字符?

相关内容