#test-1,这没关系,删除给定' cshrc'中的给定行文件
sed -i '\:alias reml rm -rf ${ENIP_HOME}/log/*:d' cshrc
#test-2,这不会删除给定' cshrc'中的行。文件
LINE="alias reml rm -rf ${ENIP_HOME}/log/*"
sed -i '\:$LINE:d' cshrc
以上sed cmd不会删除' cshrc中的行;文件,如何在test-2中执行行删除?
答案 0 :(得分:1)
在变量扩展方面,单引号('
)和双引号("
)之间存在差异。在您的设置中,只需用LINE=
定义中的单引号替换双引号即可,以便${ENIP_HOME}
在不被替换的情况下被转移(如果未定义变量,则为空字符串)。
您还需要在sed
行中使用双引号,以便$LINE
替换为变量的定义。