有没有办法使用 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 并允许组中的用户wheel
不sudo
使用密码。
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
并且您需要注意边缘情况,但在大多数情况下它就足够好了。