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

我正在编写一个bash脚本,以非交互方式在Linux系统上启用休眠.为此,我需要插入一个shell变量,该变量在一行的特定行上包含斜杠,在该行的引号内.

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

GRUB_DEFAULT=0

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR="Manjaro"

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

GRUB_CMDLINE_LINUX=""

我需要将其更改为:

GRUB_DEFAULT=0

GRUB_TIMEOUT=5

GRUB_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\)"$#\1 resume=/dev/disk/by-partuuid/c5a552c2-fe8f-423a-9037-c35bf090d9c3"#' /etc/default/grub

例:

$sed 's#^\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"$#\1 resume=/dev/disk/by-partuuid/c5a552c2-fe8f-423a-9037-c35bf090d9c3"#' <<

GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=/dev/disk/by-partuuid/c5a552c2-fe8f-423a-9037-c35bf090d9c3"

标签:bash,shell,linux,sed,hibernate

来源: https://codeday.me/bug/20190628/1311719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值