Назад | Перейти на главную страницу

редактирование значения GRUB_CMDLINE_LINUX_DEFAULT через скрипт bash

Я хочу добавить fastboot до конца существующего значения переменной GRUB_CMDLINE_LINUX_DEFAULT в / etc / default / grub не вручную, а с помощью сценария bash и echo команда. Проблема в том, что начальные значения этой переменной различаются на разных машинах, поэтому я не знаю, какой алгоритм поиска использовать, чтобы определить, где заканчивается значение переменной. Я хочу, чтобы мне показали, как добавлять fastboot непосредственно к существующему значению.

Не знаю, как это сделать в чистом 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