不。

不。

有没有办法使用 FreeBSDsysrc向它正在修改的文件添加注释?

例如,如果我有一个/etc/rc.conf标准的东西

hostname=“FreeBSDMachine”
ifconfig_em0=“DHCP”
sshd_enable=“YES”
ntpd_enable=“YES”
zfs_enable=“YES”

如果我想添加以下内容:

#Set hamster_enable = “YES” to enable automatic hamster wheel performance boost; “NO” to disable
hamster_enable=“YES”

我该如何使用 来做到这一点sysrc?我知道如何设置变量本身(sysrc hamster_enable=YES),但我不知道如何添加注释。有没有办法做到这一点?

答案1

不。

系统文件(8)不支持评论。

你没有提供太多背景信息,但我会尝试概述两个选项。也许它们是显而易见的 - 但手册页也是如此系统文件(8);-)

简单加法

在许多情况下,您可以控制配置文件并可以安全地添加内容。

echo #Set hamster_enable = \“YES\” to enable automatic hamster wheel performance boost; \“NO\” to disable >> /etc/rc.conf
echo hamster_enable=\“NO\” >> /etc/rc.conf

我在同一个 go 中添加设置以保持它们的顺序。然后你可以随意翻转设置,同时保持顺序。

sysrc hamster_enable=YES

如果内存失败并且 sysrc 不保留顺序,您可以使用以下命令保留顺序sed

内联编辑

之前处理配置文件的典型方法sysrc是使用流编辑器sed(1)。让我们首先看几个现实生活中的例子。

更改 DNS 搜索后缀:

sed -I .bak 's/^search .*/search example.com/' /etc/resolv.conf

安装 sudo 并允许组中的用户wheelsudo使用密码。

pkg install -y sudo >> /var/log/postinstall.log 2>&1
sed -I .bak 's/^# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /usr/local/etc/sudoers

将 sshd 的端口设置为 22。

sed -I '' 's/^Port .*/Port 22/' /usr/jails/flavours/default/etc/ssh/sshd_config

这引导我们找到仓鼠

sed -I '' 's/^hamster_enable=.*/hamster_enable=\"YES\"  # Here be my comment/' /etc/rc.conf

如果您坚持要在不同的行发表评论,请查看Sed 插入多行

如果我们想删除你的行 - 那么帽子^就是行的开头。

sed -I '' 's/^#Set hamster_enable/d' /etc/rc.conf
sed -I '' 's/^hamster_enable=/d' /etc/rc.conf

虽然sed比 更挑剔,sysrc并且您需要注意边缘情况,但在大多数情况下它就足够好了。

相关内容