Mag*_*1um 4 perl stdout tty io-redirection
所以我写了一个简单的html 1.0服务器,我在服务器上有一些perl脚本.特别是,我有一个名为直方图的脚本,这是一个带有表单操作的html表单,与另一个cgi文件相同.这是代码:
print "<form action=\"tallyandprint.cgi\" method=\"GET\">";
Run Code Online (Sandbox Code Playgroud)
现在,当我调用tallyandprint.cgi时,它会绘制一个带有gnuplot的图形并将其发送到用户的浏览器(STDOUT在html服务器代码中被重定向,因此perl会对其进行处理).现在,我也希望能够从bash运行tallyandprint.cgi,但采用不同风格的参数.现在,我使用perl解析通过解析url来抓取模式,并在+符号之间分隔内容(例如:?pattern = 1 + 2 + 3 + 4就是url).
这很好,花花公子,但我不希望我的论点用bash写成1 + 2 + 3 + 4,而是分开不同.我尝试使用perl的isatty()版本,但由于输入总是来自终端(因为服务器执行它),我无法区分输入是来自bash还是来自web浏览器.
我的下一步是找出STDOUT是否被重定向.因为如果web服务器运行cgi,STDOUT将被重定向到用户连接的套接字.如果在bash中运行,STDOUT应该是正常的tty.我怎样才能在perl中检查这个?
if (-t STDOUT) {
say "STDOUT is probably not redirected";
}
else {
say "STDOUT is probably redirected";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1951 次 |
| 最近记录: |