sed:使用变量作为命令和地址

时间:2014-06-26 18:40:44

标签: bash sed

在尝试在Ubuntu上编写bashscript时,我遇到了以下问题:

iconname="'application:\/\/nautilus.desktop'"
echo "iconname: $iconname"
sedvariable=\"s/$iconname[,]*//\"
echo "sedvariable: $sedvariable"
settings get com.canonical.Unity.Launcher favorites | sed ${sedvariable}

我总是收到错误说“未知命令”

sed: -e Ausdruck #1, Zeichen 1: Unbekannter Befehl: `"'

然而,变量“sedvariable”看起来很好:

sedvariable: "s/'application:\/\/nautilus.desktop'[,]*//"

手动输入命令时效果很好

gsettings get com.canonical.Unity.Launcher favorites | sed "s/'application:\/\/nautilus.desktop'[,]*//"

为什么sed不接受我变量中的命令?谢谢你的任何建议!

1 个答案:

答案 0 :(得分:1)

请试试这个

          sedvariable="-e s/$iconname[.]*//"
          gsettings get com.canonical.Unity.Launcher favorites | sed "$sedvariable"