使用sed修改/etc/mail/sendmail.cf配置未生效,求助解决方案
解决sed替换sendmail.cf配置项未生效的问题
问题根源:你原命令里的
$w是shell环境变量,执行时会被shell自动解析替换成当前主机名,导致sed实际匹配的是#Dj[你的主机名].Foo.COM,而非文件里的#Dj$w.Foo.COM,自然匹配不到目标行。修复后的命令:
方法一:对$进行转义,避免shell解析它:sed -i "/#Dj\$w.Foo.COM/c\Dj server.local.com" /etc/mail/sendmail.cf方法二:用单引号包裹匹配规则,单引号内的内容不会被shell解析:
sed -i '#Dj$w.Foo.COM/c\Dj server.local.com' /etc/mail/sendmail.cf验证替换结果:执行完命令后,用以下命令检查是否生效:
grep "Dj server.local.com" /etc/mail/sendmail.cf若输出对应的配置行,说明替换成功。
内容的提问来源于stack exchange,提问作者Aru Dubey
相关产品推荐
相关产品推荐

