通过 bash 脚本编辑 GRUB_CMDLINE_LINUX_DEFAULT 的值

通过 bash 脚本编辑 GRUB_CMDLINE_LINUX_DEFAULT 的值

我想fastboot使用 bash 脚本和命令,而不是手动将 /etc/default/grub 中 GRUB_CMDLINE_LINUX_DEFAULT 变量的现有值附加到末尾echo。问题是,这个变量的初始值在不同的机器上是不同的,所以我不知道使用哪种搜索算法来定位变量值的结束位置。我想知道如何fastboot直接附加到现有值。

答案1

不知道在纯 bash 中如何做到这一点,但通常搜索和替换会调用awksed

sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT.*/& fastboot/'  /etc/default/grub

-i:进行就地替换

接下来是搜索和替换语法s/REGEXP/REPLACEMENT/

^GRUB_CMDLINE_LINUX_DEFAULT.*^:与以 GRUB_CMDLINE_LINUX_DEFAULT 开头的行以及该字符串之后的任意数量的字符匹配的正则表达式:.*

& fastboot:REPLACEMENT 字符串,其中未转义的&字符引用模式空间的整个匹配部分(即 REGEXP 匹配的任何内容,在此示例中为整行)并附加fastboot

相关内容