将测试shell脚本状态输出到网页

时间:2014-08-28 20:55:26

标签: shell

我使用sshUnit2创建了测试[shUnit2是基于Bourne的shell脚本的xUnit单元测试框架]。执行测试后,我可以看到控制台上的执行情况,包括测试状态。我想将包含错误/异常的输出重定向到网页,就像rspec中的rake任务一样。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在终端中键入命令时,您将从stdout获得正常输出。如果要查看stderr中的错误,则必须将2>&1附加到命令(YOUR_COMMAND 2>&1),将它们从stderr重定向到stdout。

要在Web浏览器中查看命令的输出,可以将输出通过管道传输到netcat(例如YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER)。现在命令等待,直到您将Web浏览器导航到localhost:PORT_NUMBER。打开URL后,netcat将打印一些特定于服务器客户端的内容,然后退出。您可以通过将netcat输出重定向到/ dev / null(YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER 2>&1 >/dev/null)来阻止netcat输出。

如果要在浏览器中加载内容后保持“命令输出服务器”处于活动状态,则必须循环执行该命令。使用while true,您可以无限循环。所以while true; do YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER 2>&1 >/dev/null; done要保持服务器活着。最后使用&,您可以在后台运行整个事情。

例如,您的最终命令可能如下所示:

while true; do date 2>&1 | netcat -l -p 8888 2>&1 >/dev/null; done &

(浏览到127.0.0.1:8888以查看当前日期和时间)