Gnuplot-命令替换和脚本名称
我使用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),并使用一个
#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