![是否可以通过 bash 脚本自动更新 php.ini?](https://linux22.com/image/805253/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20bash%20%E8%84%9A%E6%9C%AC%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%20php.ini%EF%BC%9F.png)
我正在尝试编写一个安装脚本,我需要更改 php.ini 中的 sendmail 行
但我想自动执行此操作
目前我正在手动执行此操作:
- sudo nano /etc/php5/apache2/php.ini
- 找到包含 sendmail_path = 的行
- 然后将其编辑为
- sendmail_path = /usr/bin/msmtp -t
然后保存文件。
是否可以仅通过自动脚本来进行更改?
多谢
答案1
使用sed
:
sed -e '/^[^;]*sendmail_path/s/=.*$/= \/usr\/bin\/msmtp -t/' -i.bak /etc/php5/apache2/php.ini
或者
sudo sed -e '/^[^;]*sendmail_path/s/=.*$/= \/usr\/bin\/msmtp -t/' -i.bak /etc/php5/apache2/php.ini
这是work by word
您的请求的翻译sed 命令:
- 打开文件
/etc/php5/apache2/php.ini
sendmail_path
找到包含(前面没有字符;
)的行- 将从符号
=
到行尾的部分替换为= /usr/bin/msmtp -t
警告 -i
意思是就地修改. 使用此项将修改您的php.ini(并创建一个php.ini 文件)
为了仅尝试,不要使用-i
开关:
sed -e '/^[^;]*sendmail_path/s/=.*$/= \/usr\/bin\/msmtp -t/' /etc/php5/apache2/php.ini