2016-11-15 79 views

回答

2

您可以从您的gnuplot脚本中完全删除set output。然后将输出写入stdout,然后你就可以重定向:

gnuplot -e "set terminal pngcairo; plot sin(x)" >&2 
+0

这已经很接近,但它也写入所有的警告和错误信息到文件描述符。例如,当'pngcairo'找不到字体时,所产生的警告也会在图像数据中结束。 – ManuelAtWork

+0

你使用哪个外壳?在bash中'2'是'stderr',所以这可能是一个问题。这里,以下工作正常:'gnuplot -e“设置终端pngcairo;绘图1”> foobar.png'。这给出了一个有效的PNG图像,警告'Warning:empty y range [1:1],调整为[0.99:1.01]'被写入控制台。你也可以尝试'gnuplot -e“...”2>/dev/null 1>&3'将'stdout'重定向到文件描述符'3'并删除'stderr'。 – Christoph

+0

所有终端是否会将其消息写入'stderr'? (是否有一个Gnuplot标准,它说所有的终端都必须将他们的消息写入'stderr'?) – ManuelAtWork