Bash管道多行到Gnuplot

时间:2013-11-28 19:38:17

标签: bash gnuplot

我有代码,

echo "set term postscript" |
echo "set output 'output.ps'" |
for FILE in output*; do
    echo "plot '${FILE}' u 1:2 w l t '1', '${FILE}' u 1:3 w l t '2', '${FILE}' u 1:4 w l t '3'"
done | gnuplot -persist

我希望在gnuplot内的其他任何内容之前打印前两行。我怎样才能做到这一点?

最佳,

雅各

1 个答案:

答案 0 :(得分:2)

我是否正确理解您正在尝试“分组”前三个命令并将其集体输出管道传输到gnuplot?如果是这样,你可以写:

{
  echo "set term postscript"
  echo "set output 'output.ps'"
  for FILE in output* ; do
    echo "plot '${FILE}' u 1:2 w l t '1', '${FILE}' u 1:3 w l t '2', '${FILE}' u 1:4 w l t '3'"
  done
} | gnuplot -persist

已编辑添加:顺便提一下,您可能会发现在多行中拆分第三个echo更具可读性:

    echo plot "'${FILE}' u 1:2 w l t '1'," \
              "'${FILE}' u 1:3 w l t '2'," \
              "'${FILE}' u 1:4 w l t '3'"

echo将其参数与空格连接起来,所以这与前一个相同。这完全取决于您找到哪个版本更容易使用。)