Octave-Diagramm aus Shell-Skript anzeigen

1744
dronus

Wenn ich Octave zum Zeichnen aufrufe, muss die interaktive Eingabeaufforderung ausgeführt werden, damit der Plot weiter ausgeführt werden kann.

Beim Ausführen von der Befehlszeile aus erzwingt die --persistOption, dass Octave geöffnet bleibt, nachdem alle Octave-Befehle ausgeführt wurden, sodass ich die Darstellung sehen und bearbeiten kann.

--persist Gehen Sie interaktiv nach --eval oder Lesen aus der DATEI.

Wenn ich Octave jedoch von einem nicht interaktiven Shell-Skript aus aufrufe, kann es nicht in den interaktiven Modus wechseln, reagiert nicht auf die --persistBefehlszeilenoption oder den pause()Befehl in Octave-Skripts.

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

1

1 Antwort auf die Frage

2
Hastur

Ich versuche, Ihr Problem zu reproduzieren, aber es war nicht möglich. Ich habe diese Testdateien gemachtoct.txt

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

und go.sh(und ich mache es mit ausführbar 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 laufen mit ./go.shihm beginnt octaveund wenn ich verlassen geht es weiter mit dem Skript.


Wenn ich pause()oder pause(10)am Ende von addiere oct.txtund mit dem Befehl Octave benenne octave -q oct.txt &, verhält es sich wie angenommen:

  1. Das Skript startet die Oktave im Hintergrund und wird fortgesetzt
  2. Schließlich endet das Skript und lässt die Oktavfenster lebendig

Leider sind die Fenster der Oktave wird eingefroren vom pauseBefehl und nicht so nützlich.


  • GNU bash, Version 4.3.11
  • GNU Octave, Version 3.8.1
Das gleiche gilt für Hasturs Beispiel, wie er sagt. +1 für mich MariusMatutiae vor 8 Jahren 0
Ah, ich habe vergessen, die Skripte zu erwähnen, die nicht interaktiv waren. Das hinzugefügt. Es tut mir Leid! dronus vor 8 Jahren 0