Chcę napisać skrypt, który najpierw uruchamia program, a następnie każe mu wykonać kilka poleceń, a następnie zakończyć. Chodźmy z przykładem.
Napisałem ten skrypt myscript.sh
i nie działa tak, jak chcę. Po prostu uruchom gnuplot i poczekaj, aż zakończy działanie, a następnie uruchom inne polecenia; co oczywiście powoduje błędy.
#!/bin/bash
gnuplot
plot sin(x)
pause -1
quit
Myślę, że jasne jest, co próbuję zrobić; jeśli nie, daj mi znać w komentarzach.
command-line
bash
scripts
gnuplot
Mihir Gadgil
źródło
źródło
-p
w tym przykładzie nie ma większego zastosowania; jeśli naciśniesz enter w terminalu, gnuplot kończy pracę, a okno wydruku staje się całkowicie nieinteraktywne, z wyjątkiem polecenia quit. Wyjście 3. przychodzi i odchodzi (zupełnie niewidoczne). Ten ostatni generuje dane wyjściowe, ale ponieważ gnuplot natychmiast się zamyka, okno wykresu znów nie jest interaktywne (pokazuje również mały wykres cm kwadratowy). Więcpause -1
jest to konieczne.Jednym ze sposobów jest
-persist
:innym sposobem, jeśli potrzebujesz wstępnie przetworzyć dane, jest Bash
Here Document
(patrzman bash
):źródło
expect
...chmod u+x myscript.gnu
i wykonać bezpośrednio./myscript.gnu
Tylko uwaga zapomnienia[]
w yrange:set yrange [$minval:$maxval]
.Jak wyjaśniono na
man
stronach ,gnuplot
oczekuje się danych wejściowych z pliku poleceń w tak zwanej sesji wsadowej . Możesz np. Zapisać linięplot sin(x)
do pliku,myplot
a następnie wykonaćgnuplot myplot
.Jeśli pominiesz plik poleceń, podobnie jak skrypt, uzyskasz interaktywną sesję .
źródło
Wspomniana tutaj metoda doc jest bardzo przydatna w Gnuplot i wielu innych programach. Używając zmiennych powłoki w poleceniach Gnuplot w niniejszym dokumencie, możesz sparametryzować swoje wykresy za pomocą danych wejściowych z wiersza poleceń skryptu powłoki. Poprzez roztropne konfigurowanie rzeczy możesz masowo produkować wykresy z ogromnej ilości „dużych zbiorów danych”. Kiedyś produkowałem spójnie wyglądające wykresy rozrzutu z 20 000 do 80 000 punktów na poletkę w setkach skończonych analiz dynamiki strukturalnej przy użyciu dokładnie tej metody. To bardzo skuteczna metoda.
źródło
To może pomóc
kliknij tutaj, aby uzyskać więcej informacji
źródło