所以,我有这段代码:
while read line
do
if [ $line = $maddr ] ;
then
sed -i '/${maddr}/d' mailinglist
found=true
break
fi
done < mailinglist
如果读取的行与我的变量(字符串)匹配,则删除整行。
当它不起作用时,我用标志测试了它-X,找到模式并进入 if 循环,它甚至执行 sed 命令,但该行保留在那里。
(我在脚本中创建了“邮件列表”文件,所以我想,也许它没有写权限,但我检查了它,据我所知,我确实有权限 - 我基本上没有更改任何内容关于脚本中的权限)。
我相信 sed 命令是正确的(我必须编辑文件并立即保存它)。你能帮助我吗?
答案1
像这样工作得很好,只是不使用单引号,而是使用双引号。我倾向于把事情复杂化。
while read line
do
if [ $line = $maddr ] ;
then
sed -i "/$maddr/d" mailinglist
found=true
break
fi
done < mailinglist