如何捕捉waxsim stdout& stderr

时间:2013-01-29 06:36:56

标签: iphone macos bash ios-simulator pipe

这是关于MacOS问题的iPhone开发, 我正在使用'waxsim'在模拟器上启动我的iphone应用程序。 像这样:

/usr/local/bin/waxsim /Users/me/Desktop/app/build/Release-iphonesimulator/app.app

在我的应用内部,我使用printf(),我看到在控制台中打印的printf消息。

但我无法将它们放入文件或使用grep过滤!我尝试通常有效的一切:

cmd | grep "x"

所有消息都打印出来但不是通过grep

cmd > myfile

所有邮件仍然转到控制台,文件没有任何内容

cmd &> myfile

此命令不会向控制台打印任何内容!但myfile只包含这个:

Launching '/Users/me/Desktop/app/build/Release-iphonesimulator/app.app' on'Simulator - iOS 6.0'

但不是用printf打印的实际消息

cmd 2>&1 > myfile

这个只是一切都进入控制台,没有任何文件。

我认为waxsim用管道做了一些技巧?

1 个答案:

答案 0 :(得分:1)

cmd &> myfile应该有效(或等效地,cmd > myfile 2>&1,订单很重要)。

问题在于问题是您的邮件会被缓冲。当stdout不是终端时,这是标准行为。如果在查看文件之前完全关闭模拟器,那么消息是否存在?

如果是这样,请尝试script -q /dev/null yourcommand(不确定script的OS X语法。在Linux上它将是script -c "your command" /dev/null