我在shell脚本中设置了一个variables,然后调用一个sed脚本,并在sed脚本中使用variables这似乎并不工作,我需要帮助如何实现
sed -e“s / text / $ VAR”testing文件
test.sh
导出VAR = somevar
sed -f sedfiletesting文件
testfile的
这是一个testing文件
sedfile
S /文本/ $ VAR /
也试过
S /文本/ $ {VAR} /
结果
这是一个$ VAR文件
预期产出
这是一个somevar文件
在您的示例的命令行版本上的“软引号”允许在shell执行sed指令之前通过shell对shell进行shell扩展 。
sedfile不是shell脚本,它是由sed解释的sed脚本,所以不会发生variables的shell扩展。 这是根本不会工作AFAIK。
你可能希望使用here文档语法生成sedfile
cat <<foobar > sedfile s/text1/${VAR1}/ s/text2/${ANOTHERVAR}/ foobar
foobar foobar可以是任何string,只需在<<foobar使用相同的string即可 然后做seding
sed -f sedfile testfile
我希望你的sedfile有点复杂,对于一两个replace它可能不值得使用它。