2015-04-21 7 views
0

Мне нужно сгенерировать графический gnuplot, используя скрипт bash, потому что у меня есть много файлов для построения.Gnuplot через bash script

while [ $j -lt 30 ]; 
    do 
    if [ -f ./MyFile[$j] ]; then 
    load 'Plot_Histogramma.plt' 
    fi 
j=$(($j + 1)) 
done 

внутри «Plot_Hisogramma.plt» я есть

set output "MyFile[$j].eps" 
plot "./MyFile[$j]" using 2:1 title "MyTitle" with boxes ls 7 lc rgb "blue" 

Так что я нужен способ, чтобы передать свою индексную переменную из сценария в Gnuplot. Я пробовал с echo, printf и экспортировал, но, возможно, я делаю что-то неправильно.

+0

Мне кажется, что вы хотите увидеть «MyFile [0] .eps' и т. Д. В« Plot_Hisogramma.plt ». Это действительно имя файла? Кажется мне немного необычным, у меня мало впечатления, что вы можете говорить о переменной из bash, которая будет выглядеть как '$ {MyFile [0]}' в bash. Если это не так, забудьте об этом, просто комментарий ... – jaromrax

+0

Это нормально. Вы можете сказать gnuplot писать в postscript, jpg, png и т. Д. Он просто устанавливает формат выходного файла (если он отличается от дисплея) –

ответ

0

Я думаю, вы можете быть misreferring массив:

while [ $j -lt 30 ]; do 
    if [ -f ./${MyFile[$j]} ]; then 
    load 'Plot_Histogramma.plt' 
    fi 
j=$(($j + 1)) 
done 

, а затем другой сценарий, который я считаю, должны быть такими:

set output "${MyFile[$j]}.eps" 
plot "./${MyFile[$j]}" using 2:1 title "MyTitle" with boxes ls 7 lc rgb "blue" 

Кроме того, возможно, это ссылка помогает: bash: loading presaved variable to gnuplot cmd load