首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >判断Perl脚本的STDOUT是否被重定向

判断Perl脚本的STDOUT是否被重定向
EN

Stack Overflow用户
提问于 2012-05-07 04:39:05
回答 1查看 2.2K关注 0票数 6

所以我编写了一个简单的html1.0服务器,并且在服务器上有一些perl脚本。特别是,我有一个叫做我的直方图的脚本,它是一个html表单,它的表单操作等同于另一个cgi文件。代码如下:

代码语言:javascript
复制
print "<form action=\"tallyandprint.cgi\" method=\"GET\">";

现在,当我调用tallyandprint.cgi时,它使用gnuplot绘制一个图形并将其发送到用户的浏览器(在html服务器代码中对STDOUT进行了重定向,因此perl继承了它)。现在,我还希望能够从bash运行tallyandprint.cgi,但采用不同的参数风格。现在,我使用perl解析来获取模式,方法是解析url,并在+符号之间分隔内容(example:?pattern=1+2+3+4就是url )。

这很好,但是我不希望我的参数在bash中写成1+2+3+4,而是以不同的方式分开。我尝试使用perl版本的isatty(),但由于输入总是来自终端(因为服务器执行它),所以我无法区分输入是来自bash还是来自web浏览器。

我的下一个想法是找出STDOUT是否被重定向。因为如果user服务器运行cgi,STDOUT将被重定向到用户连接到的套接字。如果在bash中运行,STDOUT应该是正常的tty。如何在perl中检查这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-07 04:55:46

代码语言:javascript
复制
if (-t STDOUT) {
    say "STDOUT is probably not redirected";
}
else {
    say "STDOUT is probably redirected";
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10474098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档