我正在写一个bash脚本来非交互式地在Linux系统上启用休眠模式。为此,我需要在一行的特定行中插入一个包含斜杠的shell变量,并在该行的引号内。用sed添加一个内核参数给grub
文件的相关部分到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’,并替换最后一个”给定模式。使用*作为分隔符来保留扩展变量中的斜杠。“
但是,如果行尾有空格,命令会失败。是否有任何方法可以使其不会在?行考虑
此外,如果有更简单或可读的解决方案,这一点,我会非常有兴趣
+0
你如何确定'resume =/dev/disk/by-partuuid/c5a ....'的值? –