![用于使用 Gnuplot 绘制多个文件的 Bash 脚本](https://linux22.com/image/208679/%E7%94%A8%E4%BA%8E%E4%BD%BF%E7%94%A8%20Gnuplot%20%E7%BB%98%E5%88%B6%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%20Bash%20%E8%84%9A%E6%9C%AC.png)
我想绘制几个文件,只是执行一个调用 Gnuplot 的 bash 脚本。我对可能的 bash 脚本的想法是:
#!/bin/bash
gnuplot
plot 'my_first_file.dat' u 1:2
replot 'my_second_file.dat' u 1:2
让我们称之为 bash 脚本gnuplot_script.sh
。
当我通过执行此脚本时,$./gnuplot_script.sh
我只在终端中打开 gnuplot,而没有与脚本相关的绘图。
为了绘制数据,我应该在脚本中修改什么?这是我第一次接触 bash 脚本世界。
答案1
我假设这些行
plot 'my_first_file.dat' u 1:2
replot 'my_second_file.dat' u 1:2
指定命令的输入并不像您在脚本中尝试的那样起作用。
您可以将它们作为输入传递给gnuplot
“这里的文档”。
外壳脚本:
#!/bin/bash
gnuplot << EOF
plot 'my_first_file.dat' u 1:2
replot 'my_second_file.dat' u 1:2
EOF
或者,您可以将命令写入gnuplot
单独的文件中,并将文件名作为命令行参数传递给gnuplot
,例如gnuplot file.plot
。 (该文件不需要命名.plot
。)
gnuplot
您还可以创建由shell解释的脚本。
#!/usr/bin/env gnuplot
plot 'my_first_file.dat' u 1:2
replot 'my_second_file.dat' u 1:2
使该脚本可执行并通过键入其名称来运行它,就像./script
运行/path/to/script
shell 脚本一样。 (看https://stackoverflow.com/q/15234086/10622916)