将文件中以$GRUB开头的那行内容替换为变量$HOSTNAME,大概有三种方法:
-
使用双引号,变量直接引用(常用)
sed "/^\$GRUB*/c${HOSTNAME}" filename
-
使用单引号,变量处使用单引号+双引号把变量包括起来
sed '/^\$GRUB*/c'"${HOSTNAME}"'' filename
-
使用单引号,变量直接引用,但是需要通过 eval执行这个sed命令。eval会对后面Shell命令进行两遍扫描,如果第一遍扫描后,Shell命令是个普通命令,则执行此命令;如果Shell命令是含有变量的间接引用,则保证间接引用的语义
eval sed '/^\$GRUB*/c${HOSTNAME}' filename
- sed命令替换以"GRUB="开头的那行,替换为"shy n=0"
sed "/^GRUB=*/c\shyn=0" filename