Gnuplot-命令替换和脚本名称

Gnuplot-命令替换和脚本名称,gnuplot,Gnuplot,我使用Gnuplot作为后端绘图仪,通常使用以下设置: #Filename : my_plot.gnuplot set terminal pdfcairo [my_options] set output 'my_plot.pdf' .... 与Makefile结合使用: %.pdf : %.gnuplot gnuplot $< %.pdf:%.gnuplot gnuplot$< 我的问题很简单:是否有一种命令/方法可以在脚本中引用脚本的名称(相当于bash的$0),并使用一个

我使用Gnuplot作为后端绘图仪,通常使用以下设置:

#Filename : my_plot.gnuplot
set terminal pdfcairo [my_options]
set output 'my_plot.pdf'
....
与Makefile结合使用:

%.pdf : %.gnuplot
    gnuplot $<
%.pdf:%.gnuplot
gnuplot$<

我的问题很简单:是否有一种命令/方法可以在脚本中引用脚本的名称(相当于bash的
$0
),并使用一个聪明的
sprintf
或等效的设置输出?

您无法从gnuplot访问脚本名称,但可以在调用脚本时提供一个参数,这应该可以正常工作,尤其是在使用makefile时

%.pdf: %.gnuplot
    gnuplot -e "scriptname='$<'" $<
%.pdf:%.gnuplot

gnuplot-e“scriptname=”$这可能是一种黑客行为,根据您的情况可能会起作用:您可以使用!标记来转义gnuplot以输入任何Bash命令。因此,在您的情况下,类似这样的操作可以起作用:
!printf“您正在运行:`ls*.gp`\n“
假设您的gnuplot文件扩展名为.gp并且在路径中。您可以将
ls
命令更改为任何符合您需要的命令,或者只需简单的
!ls*.gp
@ZahaibAkhtar修复得不错,但问题是,我肯定有几十个
.gp
文件,所以我需要能够引用实际被调用的文件:(我知道,在这种情况下
ls
不是正确的,这个
!ps aux | grep gnuplot | awk'{print$12}'| head n1
(您可以根据需要对其进行修剪)虽然我仍然不认为这是一个优雅的解决方案,但这也做了很多假设。我同意一个更好的解决方案不应该走这种间接的路线。哇,克里斯托夫的答案肯定更短更清晰,但是该死,这是一个聪明的答案,你应该为了它而提交它,我会完全支持它T