繁体   English   中英

CGI渲染到屏幕外壳脚本输出

[英]CGI renders to screen shell script output

我用C ++创建了一个CGI。 该程序以这种方式调用shell脚本script.sh

system("script.sh")

我不知道为什么,但是当我使用CGI时,网页会显示脚本的所有输出。 我该怎么做才能避免这种情况? 我插入了一个echo off但它不起作用,我仍然看到所有输出。 有没有办法禁用它? 我正在使用LINUX Red Hat 6.2,并将Mongoose用作Web服务器。

通常,最好使用诸如system("script.sh >> log.txt 2>&1")来捕获所有正常和错误输出,并将其重定向到log.txt 否则,此输出将定向到STDOUTSTDERR ,并且STDOUT是CGI向HTTP流的输出。

将其放置在适当的位置,它还可以改善您的脚本,使其具有启用或禁用此日志记录的输入,例如CGI参数中的&logging=1 ,然后您将具有以下内容来控制输出:

if (logging==1) {
  system("script.sh >> log.txt 2>&1");
}
else {
  system("script.sh >> /dev/null 2>&1");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM