То, что я хочу сделать, записать сценарий который первые запуски программа и затем говорит этому выполнять набор команд и затем выходить. Отпускает с примером.
Я записал этот сценарий myscript.sh
и это не прокладывает себе путь, я хочу это к. То, что это делает, просто выполняется gnuplot, и ожидайте его для выхода и затем выполняйте другие команды; который, очевидно, производит ошибки.
#!/bin/bash
gnuplot
plot sin(x)
pause -1
quit
Я предполагаю, что ясно, что я пытаюсь сделать; в противном случае затем сообщите мне в комментариях.
От man gnuplot
или его страница справочника онлайн:
-p, --persist lets plot windows survive after main gnuplot program
exits.
-e "command list" executes the requested commands before loading the
next input file.
Поэтому то, что Вы, вероятно, хотите выполнить, является следующей командой:
gnuplot -e "plot sin(x); pause -1"
<час> Другие варианты я сделал предложение, но которые не настолько полезны, были:
gnuplot -p -e "plot sin(x); pause -1"
gnuplot -e "plot sin(x)"
gnuplot -p -e "plot sin(x)"
Один путь с -persist
:
#!/usr/bin/gnuplot -persist
set title "Walt pedometer" font ",14" textcolor rgbcolor "royalblue"
set timefmt "%y/%m/%d"
set xdata time
set pointsize 1
set terminal wxt enhanced title "Walt's steps " persist raise
plot "/home/walt/var/Pedometer" using 1:2 with linespoints
иначе, если необходимо предварительно обработать данные, с Bash Here Document
(см. man bash
):
#!/bin/bash
minval=0 # the result of some (omitted) calculation
maxval=4219 # ditto
gnuplot -persist <<-EOFMarker
set title "Walt pedometer" font ",14" textcolor rgbcolor "royalblue"
set timefmt "%y/%m/%d"
set yrange $minval:$maxval
set xdata time
set pointsize 1
set terminal wxt enhanced title "Walt's steps " persist raise
plot "/home/walt/var/Pedometer" using 1:2 with linespoints
EOFMarker
# rest of script, after gnuplot exits
Как объяснено в man
страницы , gnuplot
ожидают вход от командного файла в том, что называют пакетный сеанс . Вы можете, например, писать строку plot sin(x)
в файл myplot
и затем выполняться gnuplot myplot
.
при исключении командного файла поскольку сценарий делает, Вы доберетесь интерактивная сессия .
Упомянутый метод здесь-документа очень полезен с Gnuplot и со многими другими программами также. При помощи переменных оболочки в Gnuplot управляет в здесь-документе, можно параметризовать графики с исходными данными из командной строки сценария оболочки. Путем уклончивой установки вещей можно выпускать серийно графики от обширных находок "больших данных". Я раньше производил последовательно выглядящие диаграммы рассеяния с 20 000 - 80 000 точек ГРАФИК PER в сотнях структурной динамики конечные аналитические выполнения, использующие точно этот метод. Это - очень мощный метод.
Это могло бы помочь
{#set terminal postfile
{#set output "d1_plot.ps"
set title "Energy vs. Time for Sample Data"
set xlabel "Time"
set ylabel "Energy"
plot "d1.dat" with lines
pause -1 "Hit Enter to continue"
gnuplot myscript.sh -
Хитрость заключается в том, чтобы поставить тире '-' в конце командной строки.
Это оставит интерактивную команду gnuplot активной. Так что вы можете продолжать вставлять команду вручную.
Все после вашей команды выхода не будет оцениваться.