我想fastboot
使用 bash 脚本和命令,而不是手动将 /etc/default/grub 中 GRUB_CMDLINE_LINUX_DEFAULT 变量的现有值附加到末尾echo
。问题是,这个变量的初始值在不同的机器上是不同的,所以我不知道使用哪种搜索算法来定位变量值的结束位置。我想知道如何fastboot
直接附加到现有值。
答案1
不知道在纯 bash 中如何做到这一点,但通常搜索和替换会调用awk
或sed
。
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