bash或其他:以编程方式更新配置文件?

时间:2012-04-24 07:39:20

标签: bash archlinux rc daemons

以编程方式更新/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等任务服务器?

1 个答案:

答案 0 :(得分:1)

我不知道一个通​​用的方法(似乎很少有工具可以对shell代码进行任何解析和修改),但是更新像这样的简单数组的一种方法可能是实际读取它,更改它,然后回写整行 - 像这样:

source /etc/rc.conf
DAEMONS+=(postgresql)
sed -i -e s/'^DAEMONS=.*'/"DAEMONS=(${DAEMONS[@]})"/ /etc/rc.conf