首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gnuplot脚本名或bash $0替代gnuplot

gnuplot脚本名或bash $0替代gnuplot
EN

Stack Overflow用户
提问于 2015-05-19 00:32:47
回答 2查看 482关注 0票数 1

如何以编程方式获取当前gnuplot脚本的名称?我知道我可以从bash调用gnuplot脚本并获得它的文件名,但是我想知道是否有可能从gnuplot内部调用它。我的目标是做这样的事情:

代码语言:javascript
复制
date=system("date +%F_%T | sed 's/:/-/g'")
my_name=$0 # THIS IS HOW TO DO IT IN BASH

set term png
set output my_name.date.".png"

我试过:

代码语言:javascript
复制
my_name=system("cat /proc/$$/cmdline")

但是它返回sh而不是脚本名。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 01:41:08

你的问题没有完全得到回答,但这可能有助于你想要做的事情:

您可以在脚本中保留未设置的my_name,并在加载脚本之前将其设置在gnuplot中(无论如何,您需要知道脚本名称):

代码语言:javascript
复制
my_name=...
load(my_name)

或者在从shell调用gnuplot时设置它:

代码语言:javascript
复制
$ gnuplot -e "my_name=${FILE}" ${FILE}

还有几件事:

代码语言:javascript
复制
date=system("date +%F_%T | sed 's/:/-/g'")

可以用

代码语言:javascript
复制
date=system("date +%F_%H-%M-%S")

(它更短,不需要通过sed解析)或根本没有任何分叉:

代码语言:javascript
复制
date=strftime("%F_%H-%M-%S",time(0.0))
票数 2
EN

Stack Overflow用户

发布于 2015-05-19 06:39:57

使用gnuplot 5,您可以通过变量load访问使用ARG0调用的文件。

考虑一下脚本test.gp,它只包含

代码语言:javascript
复制
print ARG0

现在,用

代码语言:javascript
复制
gnuplot -e "load 'test.gp'"

在屏幕上打印test.gp。在早期版本中,您无法访问类似的变量(在使用call时也不能)。对于早期版本,您必须坚持@chw21 21给出的解决方案之一。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30314902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档