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

问题描述:

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

+0

对不起,我还没有尝试过。我是shell的新手,所以需要一些指导。 – user1877775 2014-08-28 21:14:35

当你在终端输入一个命令时,你会得到标准输出。如果您想查看stderr的错误,您必须将2>&1添加到您的命令(YOUR_COMMAND 2>&1)中,将它们从stderr重定向到stdout。

要在Web浏览器中查看命令的输出,可以将输出传送到netcat(例如YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER)。现在该命令会等待,直到您浏览到网络浏览器localhost:PORT_NUMBER。打开URL后,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看到当前日期和时间)