2

我正在使用 bash 从脚本中提供 gnuplot。你怎么只弹出一个窗口?假设你跑

#!/bin/bash 
for((i=1;i<6;i++)) do
  echo "plot sin(x)"
done | gnuplot -persist

您将获得 5 个相同情节的窗口。有没有只买一个的选项?


上面有一个错误。那不完全是我正在做的那种运行时。更像是运行下一个脚本,比如 5 次

#!/bin/bash 
echo "plot sin(x)"    

我刚刚意识到我想要做的是在创建新进程之前杀死最新的 gnuplot 进程。

对此感到抱歉。今天好累 :D

4

4 回答 4

3

gnuplot x11 终端使用一个单独的程序gnuplot_x11来显示结果。从帮助

The `xlib` terminal driver supports the X11 Windows System.  It generates
 gnuplot_x11 commands, but sends them to the output file specified by
 `set output '<filename>'`. `set term x11` is equivalent to
 `set output "|gnuplot_x11 -noevents"; set term xlib.`
 `xlib` takes the same set of options as `x11`.

所以,如果你想杀死在 a 之后剩余的地块gnuplot -persist,它应该就足够了killall gnuplot_x11

于 2012-04-18T12:45:44.740 回答
2

以下情况如何:

  echo `for((i=1;i<6;i++))
  do
    echo 'plot sin(x)'
  done` | gnuplot -persist
于 2012-04-17T18:08:26.477 回答
2

您可能对较新版本的 Gnuplot 中可用的迭代功能感兴趣(请参阅用户指南中的迭代部分)

于 2012-04-17T22:04:54.393 回答
1

在一个脚本中,一个可以

    echo "set grid" > gpfile
    tail -f  gpfile | gnuplot  '-'

然后在另一个进程中,可以将任何 gnuplot 命令写入 gpfile

    echo "plot \"whatever\" " >> gpfile
    sleep 3
    echo "replot" >> gpfile

...ETC

它对于实时过程控制显示很有用,其中一些状态文件

正在定期更新。

于 2013-03-12T04:31:44.900 回答