bash cgi不会返回图片

时间:2014-04-15 11:54:08

标签: perl bash cgi rrd

我们有一个制作RRD数据库的监控系统。我正在寻找从这个RRD文件为我们的HTML页面创建图表的最轻松的方法。所以我不想将它们存储在文件中。我正在尝试创建简单的BASH CGI脚本,它将输出图像数据,所以我可以这样做:

<img src="/cgi-bin/graph.cgi?param1=abc"></img>

首先,我正在尝试创建简单的CGI脚本,它会向我发送PNG图像。这不起作用:

#!/bin/bash
echo -e "Content-type: image/png\n\n"
cat image.png

但是当我将其重写为PERL时,它确实有效:

#!/usr/bin/perl
print "Content-type: image/png\n\n";
open(IMG, "image.png");
print while <IMG>;
close(IMG);
exit 0;

有什么区别?我真的很想在BASH做这件事。谢谢。

1 个答案:

答案 0 :(得分:4)

缺少-n开关输出第三个换行符,所以它应该是

echo -ne "Content-type: image/png\n\n"

echo -e "Content-type: image/png\n"

来自man echo

  -n     do not output the trailing newline