Я делаю некоторый скрипт на bash для отображения данных с помощью gnuplot. Но это не работает.
У меня есть программа, которая выбрасывает данные в командную строку.
Я собираю эти данные в файл и затем повторяю этот процесс, чтобы получить желаемый результат. Скажем, у меня есть этот скрипт
N = 10
./program.exe > data_$N.dat # Creating the data to be plotted
for ((i = 0 ; i<1 ; i++)) do # Dummy loop to throw all together to gnuplot
echo "set size square"
echo "set xrange[-$N-1:$N+1]; set yrange[-$N-1:$N+1];"
echo "plot '-' using 1:2"
for((j = 0 ; j <= 9 ; j++)) do
# Throwing the data to gnuplot
echo "cat data_$N.dat"
# Updating the file and overwriting on it
echo "cat data_$N.dat | xargs ./program.exe > data_$N.dat" | bash
echo "e"
echo "pause 0.5"
done
done | gnuplot -persist # Throwing the formatted data to gnuplot
Итак, в основном я выкидываю отформатированный текст в файл gnuplot, меняя его содержимое, но не меняя имени файла.
Конечно, я не хочу менять имя файла, потому что я делаю вычисления, соответствующие этому шагу с этим файлом, а затем перезаписываю файл обновленными данными. Вид буфера. Вычислительный поток будет
./program.exe > data.dat # Making the initial data
begin gnuplot loop
throw data to gnuplot
"cat data.dat | xargs ./program.exe > data.dat" # update data overwriting file
end gnuplot loop
pipe all the script to gnuplot
Надежда ясна, и вы можете мне помочь :). Спасибо!
PD. Я физик.