将Gnuplot变量传递给shell表达式

时间:2013-09-04 14:05:33

标签: shell gnuplot

我试图在gnuplot中获取文件的第一个元素:

data = "file.dat"
x = `cat data | head -n 2 | tail -n 1 | awk '{print $1}'`

但这不断给我以下错误:

no such file or directory
我应该写点类似的东西 x = cat $data | head -n 2 | tail -n 1 | awk '{print $1}'

(以美元计算)

显然,这也是不正确的。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

您需要使用

set macro

然后使用符号@获取变量data的值 (Gnuplot中的@与bash中的$相似

所以这应该有用

x = `cat @data | head -n 2 | tail -n 1 | awk '{print $1}'`

答案 1 :(得分:5)

使用system函数的另一种可能性而非背景。然后你可以构建任何字符串并将其作为shell表达式运行:

data = 'file.dat'
x = system("head -n 2 ".data." | tail -n 1 | awk '{print $1}'")