当Variable再次具有特殊字符时,如何在sed cmd中使用变量?

时间:2016-06-23 09:47:35

标签: linux shell sed sh

#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中执行行删除?

1 个答案:

答案 0 :(得分:1)

在变量扩展方面,单引号(')和双引号(")之间存在差异。在您的设置中,只需用LINE=定义中的单引号替换双引号即可,以便${ENIP_HOME}在不被替换的情况下被转移(如果未定义变量,则为空字符串)。

您还需要在sed行中使用双引号,以便$LINE替换为变量的定义。