我正在使用exec
输入插件。我想要执行的shell命令包括单引号和双引号。我该如何妥善逃脱?
input {
exec {
command => 'curl -i -X POST -H "Content-Type:application/json" -d '{"this":"that"}' http://a_url'
}
}
此示例失败,因为包装命令的单引号会干扰curl
数据选项周围的单引号。
任何帮助都会受到赞赏,我太沮丧了。
编辑 - 我想我明白了。我将-d
的引号更改为双引号。然后我逃脱了json中的双引号:
-d "{\"this\":\"that\"}"
最后,我的json中的一个项目是包含$
的密码。我也不得不逃避它:
-d "{\"this\":\"tha\$t\"}"
那不好玩。