2

以编程方式更新/etc/rc.conf配置文件的最佳方法是什么?

具体来说,在 Arch linux 机器上,我希望能够以编程方式更新

DAEMONS=(syslog-ng network sshd ntpd netfs crond)

DAEMONS=(syslog-ng network sshd ntpd netfs crond postgresql)

通过 .postgresql 成功安装后pacman

我想我可以编写一个执行以下操作的函数:

line="DAEMONS=(syslog-ng network sshd ntpd netfs crond)"

sed -i "/${line}/ s/)/ postgresql)/" /etc/rc.conf

专门处理这个 postgresql 场景。

但是,更进一步,是否有一种更通用的方法(如果有可以推荐的库,则使用库)以编程方式在我的文件的参数中包含我的服务(例如memcached,或类似任务服务器zeromq等) ?DAEMONS/etc/rc.conf

4

1 回答 1

1

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

source /etc/rc.conf
DAEMONS+=(postgresql)
sed -i -e s/'^DAEMONS=.*'/"DAEMONS=(${DAEMONS[@]})"/ /etc/rc.conf
于 2012-04-24T07:56:34.727 回答