Grub
通過 bash 腳本編輯 GRUB_CMDLINE_LINUX_DEFAULT 的值
我想附加
fastboot
到 /etc/default/grub 中 GRUB_CMDLINE_LINUX_DEFAULT 變數的現有值的末尾,而不是手動,而是使用 bash 腳本和echo
命令。問題是這個變數的初始值在不同的機器上是不同的,所以我不知道使用哪種搜尋算法來定位變數值的結束位置。我想展示如何fastboot
直接附加到現有值。
不知道如何在純 bash 中做到這一點,但通常搜尋和替換會呼叫 on
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