以编程方式更新/etc/rc.conf
配置文件的最佳方法是什么?
具体来说,在arch linux机器上,我希望能够以编程方式更新
DAEMONS=(syslog-ng network sshd ntpd netfs crond)
到
DAEMONS=(syslog-ng network sshd ntpd netfs crond postgresql)
通过pacman
成功安装postgresql后。
我认为我可以编写一个类似于:
的函数line="DAEMONS=(syslog-ng network sshd ntpd netfs crond)"
sed -i "/${line}/ s/)/ postgresql)/" /etc/rc.conf
专门处理这个postgresql场景。
然而,更进一步,是否有一种更强的通用方式(使用库,如果有一个你可以推荐的那个),它以编程方式包含我的服务(例如memcached
,或者像zeromq
文件DAEMONS
参数中的/etc/rc.conf
等任务服务器?
答案 0 :(得分:1)
我不知道一个通用的方法(似乎很少有工具可以对shell代码进行任何解析和修改),但是更新像这样的简单数组的一种方法可能是实际读取它,更改它,然后回写整行 - 像这样:
source /etc/rc.conf
DAEMONS+=(postgresql)
sed -i -e s/'^DAEMONS=.*'/"DAEMONS=(${DAEMONS[@]})"/ /etc/rc.conf