linux – 使用sed将内核参数添加到grub

linux – 使用sed将内核参数添加到grub,第1张

概述我正在编写一个bash脚本,以非交互方式在 Linux系统上启用休眠.为此,我需要插入一个shell变量,该变量在一行的特定行上包含斜杠,在该行的引号内. b编辑文件的相关部分如下所示: GRUB_DEFAULT=0GRUB_TIMEOUT=5GRUB_DISTRIBUTOR="Manjaro"GRUB_CMDLINE_LINUX_DEFAULT="quiet"GRUB_CMDLINE_L 我正在编写一个bash脚本,以非交互方式在 Linux系统上启用休眠.为此,我需要插入一个shell变量,该变量在一行的特定行上包含斜杠,在该行的引号内.

b编辑文件的相关部分如下所示:

GRUB_DEFAulT=0GRUB_TIMEOUT=5GRUB_disTRIBUTOR="manjaro"GRUB_CMDliNE_liNUX_DEFAulT="quIEt"GRUB_CMDliNE_liNUX=""

我需要将其更改为:

GRUB_DEFAulT=0GRUB_TIMEOUT=5GRUB_disTRIBUTOR="manjaro"GRUB_CMDliNE_liNUX_DEFAulT="quIEt resume=/dev/disk/by-partuuID/c5a552c2-fe8f-423a-9037-c35bf090d9c3"GRUB_CMDliNE_liNUX=""

添加参数由shell变量提供.

我试过这个:

sed -i '\*^GRUB_CMDliNE_liNUX_DEFAulT* s*"$* '"$(grub_resume_boot_option)"'"*' /etc/default/grub

我的目标逻辑是:“查找以模式”GRUB_CMDliNE_liNUX_DEFAulT“开头的行,并用给定的模式替换最后一行.使用*作为分隔符来保留扩展变量中的斜杠.“

但是,如果该行末尾有任何空格,则该命令将失败.有没有办法让它不考虑行尾的空格?

此外,如果有更简单或可读的解决方案,我会非常感兴趣.

解决方法 你可以做:

sed -i 's#^\(GRUB_CMDliNE_liNUX_DEFAulT="quIEt\)"$# resume=/dev/disk/by-partuuID/c5a552c2-fe8f-423a-9037-c35bf090d9c3"#' /etc/default/grub

例:

$sed 's#^\(GRUB_CMDliNE_liNUX_DEFAulT="quIEt\)"$# resume=/dev/disk/by-partuuID/c5a552c2-fe8f-423a-9037-c35bf090d9c3"#' <<<'GRUB_CMDliNE_liNUX_DEFAulT="quIEt"'GRUB_CMDliNE_liNUX_DEFAulT="quIEt resume=/dev/disk/by-partuuID/c5a552c2-fe8f-423a-9037-c35bf090d9c3"
总结

以上是内存溢出为你收集整理的linux – 使用sed将内核参数添加到grub全部内容,希望文章能够帮你解决linux – 使用sed将内核参数添加到grub所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1018220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存