# 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 中执行行删除?
最佳答案
在变量扩展方面,单引号('
)和双引号("
)是有区别的。在您的设置中,只需替换双引号即可通过 LINE=
定义中的单引号,这样 ${ENIP_HOME}
就不会被替换(如果 undefined variable ,则为空字符串)。
您还需要在 sed
行中使用双引号,以便将 $LINE
替换为变量的定义。
关于linux - 当变量再次具有特殊字符时,如何在 sed 命令中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37988033/