cron中的grep双引号

cron中的grep双引号

我在终端上运行这个命令

$ my_json_generator.rb | grep \"mtype\":164 | my_json_consumer.rb

json_generator 创建 json 对象。每行 1 个。

{"foo":7, "mtype":164, "bar":[1,2,3]}

我只需要包含 mtype 为 164 的行,出于性能原因(以及此问题范围之外的其他原因),我想避免将其他 json 行解析为对象。我认识到我可以在代码中执行此操作,但需要避免这样做。

因此,上述命令在终端上有效,但在 cron 中无效。欢迎提出任何建议。

谢谢!

答案1

我猜你有$PATH问题。

尝试放入完整PATH的可执行文件,或者在开头添加crontab

SHELL=/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
[email protected]

* * * * * my_json_generator.rb | grep \"mtype\":164 | my_json_consumer.rb

答案2

什么意思?它不起作用?尝试从 Crontab 条目中删除反斜杠。它可能被双重转义了。

相关内容