2014-05-06 41 views
1

我想從配置文件使用bash腳本和繪圖數據加載Gnuplot的參數。這個問題的關鍵是訪問這些參數。這是我的解決方案,但發生了一些錯誤。從bash腳本中的陣列設置Gnuplot的參數

gnuplot << EOF 
values="${params[*]}" 
do for [val in values] { 
val=sprinf("%s", j) 
set $val 
} 

我得到這樣的輸出:

gnuplot> do for [j in values] { 
          ^
     line 0: invalid complex constant 
     line 0: undefined variable: j 
gnuplot> set 
      ^
     line 0: Unrecognized option. See 'help set'. 
gnuplot> } 
     ^
     line 0: invalid character } 

我敢肯定,我有參數數組內多個字符串。 謝謝

+0

更新: 我也試過「set val」了。 – Majzlik

+0

是否有任何理由這樣做,沒有配置文件並用'load'config.gp'加載它? – Christoph

+0

是的,這是我的任務,我有配置文件的結構(對於Gnuplot和其他東西),我正在創建一個腳本來處理這個文件。其實,它不是我的代碼,我在[stackexchange](http://unix.stackexchange.com/questions/52453/gnuplot-shell-variable-substitution-and-array) 這裏找到它,但它爲我留下了深刻的印象,所以我用它。 – Majzlik

回答

0

你的gnuplot版本太舊了。從版本4.6開始,僅支持迭代結構do for

然後,將以下工作正常:

#!/bin/bash 
params[0]='grid' 
params[1]='xrange[0:10]' 

gnuplot -persist << EOF 
values="${params[*]}" 
do for [val in values] { 
    eval('set '.val) 
} 
plot x 
EOF 

但是,這僅適用,如果數組條目不包含任何空格。通常情況下,你會創建一個配置文件與內容

set grid 
set xrange [0:10] 

load 'config.gp'加載此。