Octave-Plot aus Shell-Skript anzeigen

Octave-Plot aus Shell-Skript anzeigen

Wenn ich Octave aufrufe, um etwas zu plotten, muss die interaktive Eingabeaufforderung weiterlaufen und den Plot anzeigen.

Beim Ausführen über die Befehlszeile --persisterzwingt die Option, dass Octave nach der Ausführung aller Octave-Befehle geöffnet bleibt, sodass ich das Diagramm sehen und bearbeiten kann.

--persist Wechseln Sie nach --eval oder dem Lesen aus DATEI in den interaktiven Modus.

Wenn ich Octave jedoch von einem nicht interaktiven Shell-Skript aus aufrufe, kann es nicht in den interaktiven Modus wechseln und reagiert weder auf --persistBefehlszeilenoptionen noch auf pause()Befehle in Octave-Skripten.

Gibt es eine Möglichkeit, Octave unsichtbar interaktiv zu halten, wenn es von einem Shell-Skript aufgerufen wird?

Antwort1

Ich habe versucht, Ihr Problem zu reproduzieren, aber es war nicht möglich. Ich habe diese Testdateienoct.txt

x = -10:.1:10;
y = sin(x).*exp(-abs(x));
plot(x,y)

und go.sh(und ich mache es ausführbar mit chmod u+x go.sh)

#!/bin/bash
octave -q --persist oct.txt  # It calls the octave and remain as interactive
echo " Now we continue "     # Here the script continue when you exit from octave
sleep 5                      # Do some stuffs
exit                         # It exits

Wenn ich es ausführe, ./go.shstartet es octaveund wenn ich es beende, wird es mit dem Skript fortgesetzt.


Wenn ich unten pause()oder hinzufüge und Octave mit dem Befehl aufrufe, verhält es sich wie vorgesehen: pause(10)oct.txtoctave -q oct.txt &

  1. das Skript startetOktaveim Hintergrund und fährt fort
  2. schließlich endet das Skript und lässt die Oktavfenster am Leben

Leider sind die Fenster vonOktaveIstgefrorenvom pauseBefehl und nicht so nützlich.


  • GNU Bash, Version 4.3.11
  • GNU Octave, Version 3.8.1

verwandte Informationen