gnuplot命令行参数和调用参数

gnuplot命令行参数和调用参数,gnuplot,command-line-interface,interactive,Gnuplot,Command Line Interface,Interactive,接下来,我看到我可以制作一个类似myscript.gp的脚本 if(!exist("parameters")) parameters="" plot "< myprog ".parameters u 1:2 但是,当使用myscript2.gp以交互模式运行时,我可以获得类似的结果 parameters="$0" plot "< myprog ".parameters u 1:2 现在是问题。在我看来,这两个方法没有连接,$O在批处理中运行时会失败,而使用call时“参数”不会更

接下来,我看到我可以制作一个类似myscript.gp的脚本

if(!exist("parameters")) parameters=""
plot "< myprog ".parameters u 1:2
但是,当使用myscript2.gp以交互模式运行时,我可以获得类似的结果

parameters="$0"
plot "< myprog ".parameters u 1:2
现在是问题。在我看来,这两个方法没有连接,$O在批处理中运行时会失败,而使用call时“参数”不会更新

如何设置可以从shell命令行以及gnuplot交互命令行调用的脚本?另一个问题是,是否可以测试脚本在哪些条件下被调用

谢谢,

我找到了一个非常不雅观的解决方案,但这可能有助于实现我想要的

parameters=""                                  # sets default value
if ("$#" eq sprintf("%d",1)) parameters="$0"   # if using call with 1 parameter: $#=1
if (exist("bpar")) parameters=bpar             # checking for batch call

plot "< myprog ".parameters u 1:2


请注意,只有当交互调用使用一个且只有一个参数时,这才有效。它可能应该包含在一个循环中,但是[]{}的一个基本do抱怨“旧式if”或不同的值一起被or。但是我现在没时间再看了。关于你提到的同一个问题,你试过了吗?@vagoberto,没有,上次我检查时它不在那里。另外,我使用的是标准版本的gnuplot。但看起来他们改进得很好。
gnuplot> call "myscript2.gp" "-m 5"
parameters=""                                  # sets default value
if ("$#" eq sprintf("%d",1)) parameters="$0"   # if using call with 1 parameter: $#=1
if (exist("bpar")) parameters=bpar             # checking for batch call

plot "< myprog ".parameters u 1:2
$ gnuplot -e "bpar='-m 5'" myscript.gp
gnuplot> call "myscript2.gp" "-m 5"