Wenn ich Octave aufrufe, um etwas zu plotten, muss die interaktive Eingabeaufforderung weiterlaufen und den Plot anzeigen.
Beim Ausführen über die Befehlszeile --persist
erzwingt 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 --persist
Befehlszeilenoptionen 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.sh
startet es octave
und 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.txt
octave -q oct.txt &
- das Skript startetOktaveim Hintergrund und fährt fort
- schließlich endet das Skript und lässt die Oktavfenster am Leben
Leider sind die Fenster vonOktaveIstgefrorenvom pause
Befehl und nicht so nützlich.
- GNU Bash, Version 4.3.11
- GNU Octave, Version 3.8.1