我想将“模板”文件的输出通过管道传递到MySQL,该文件具有${dbName}散布的变量。替换这些实例并将输出转储到标准输出的命令行实用程序是什么?
3 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
更新资料
这是来自yottatsa的一个类似问题的解决方案,它仅替代$ VAR或$ {VAR}之类的变量,并且是简短的单行代码
i=32 word=foo envsubst < template.txt
当然,如果i和word在您的环境中,那只是
envsubst < template.txt
在我的Mac上,它看起来像是作为gettext的一部分并从MacGPG2安装的
旧答案
这是mogsie在类似问题上的解决方案的改进,我的解决方案不需要escale双引号,mogsie的需要,但是他只是一个衬里!
eval "cat <<EOF
$(<template.txt)
EOF
" 2> /dev/null
这两种解决方案的强大之处在于,尽管反斜杠是一个扩展名,但您只会得到几种类型的shell扩展,这些扩展通常不会发生$((...)),`...和$(...)。在这里转义字符,但是您不必担心解析存在错误,并且多行就可以了。
- 3 回答
- 0 关注
- 1440 浏览
添加回答
举报
0/150
提交
取消