2013-05-13 3 views
2

Hy парней! У меня проблемы с написанием скрипта bash для запуска 50-кратного моего скрипта, который генерирует файлы данных, а затем записывает их в файл. я написал, как это л, но он не работаетBash скрипт для построения с gnuplot

#!/bin/bash 
for i in {1..50} 
do 
    ./ampl ampltst1 # generates different res.txt file each time 
    /usr/bin/gnuplot <<\__EOF 
    set xrange [-2:2] 
    set yrange [-2:2] 
    set term png 
    set output "image-${i}.png" 
    plot "res.txt" u 1:2 w lines, "res.txt" u 3:4 w lines, "res.txt" u 5:6 w li$ 
    pause -1 
    __EOF 
done 

Пожалуйста, помогите мне исправить этот сценарий!

+0

Как это не работает? Вы получили сообщение об ошибке? Другие наблюдения. – Thor

+0

Почему пауза -1? он требует, чтобы вы нажимали Enter 50 раз. – user829755

ответ

3

Возможно, у вас есть проблемы с отступом: __EOF должны быть без каких-либо ведущих пространств:

... 
    /usr/bin/gnuplot <<\__EOF 
    set xrange [-2:2] 
    ... 
__EOF 
done 

Также \ символ не требуется.

Также содержимое ЗДЕСЬ-ИЗОБРАЖЕНИЕ будет отступом. Это нормально для gnuplot?

Если нет, вы должны удалить отступа:

for i in {1..50} 
do 
    ./ampl ampltst1 # generates different res.txt file each time 
    /usr/bin/gnuplot <<__EOF 
set xrange [-2:2] 
set yrange [-2:2] 
set term png 
set output "image-${i}.png" 
plot "res.txt" u 1:2 w lines, "res.txt" u 3:4 w lines, "res.txt" u 5:6 w li$ 
pause -1 
__EOF 
done 
Смежные вопросы