如何在使用Ruby和SOAP时抑制奇怪的stdout消息

时间:2010-01-22 22:01:29

标签: ruby soap

STDOUT正在获得一些奇怪的输出:

ignored attr: {}abstract

我所有的SOAP调用都运行正常,但这只是对我的cron工作的影响:)

由于

1 个答案:

答案 0 :(得分:2)

您可以通过将stdout重定向到/ dev / null:

来压制stdout
commandname >/dev/null

您可以通过将stderr重定向到/ dev / null:

来压制stderr
commandname 2>/dev/null

你可以通过将两者都重定向到/ dev / null来压制stdout和sderr:

commandname &>/dev/null

然而这些方法会压制您的脚本可能给出的任何真正的错误。

一个更好的选择是让nohup运行你的脚本并将输出(stdout和stderr)重定向到nohup.out:

nohup commandname

...这样你的cron就不会收到任何错误(并且不会向你发送错误邮件),但你仍然可以定期检查nohup.out的内容,只要确保它在正确的目录(也许nohup有选项,缺少你从你想要创建nohup.out的特定目录中调用nohup)。

但更好的方法是使用grep:

来抑制这一行
commandname | grep -v 'ignored attr: {}abstract'

...(确保你在那里使用正确的shell转义,我只是把它放在撇号''但是大括号{}可能需要其他转义)这样你只能从stdout中抑制这个特定消息的出现,但是让所有其他消息通过。因此,如果这是您的脚本发出的唯一类型的事情,您将不会收到电子邮件,但如果脚本输出其他消息,您将收到电子邮件 - 我猜这非常接近您想要的。

当然,完美的解决方案是深入研究脚本,找到并修复导致消息的原因。