Показать октавный сюжет из сценария оболочки

1692
dronus

Если я вызываю Octave для построения графика, ему нужно интерактивное приглашение, чтобы продолжить работу и показать график.

При запуске из командной строки --persistопция заставит Octave оставаться открытым после выполнения всех команд Octave, поэтому я могу видеть и манипулировать графиком.

--persist Перейти в интерактивное состояние после --eval или чтения из ФАЙЛА.

Однако, когда я вызываю Octave из неинтерактивного сценария оболочки, он не может войти в интерактивный режим, не реагирует --persistни на параметр командной строки, ни на pause()команду внутри сценариев Octave.

Есть ли способ, позволяющий Octave невидимо оставаться интерактивным, если он вызывается из сценария оболочки?

1

1 ответ на вопрос

2
Hastur

I try to reproduce your problem but it was not possible. I did this test files oct.txt

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

and go.sh (and I make it executable with 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 

When I run it with ./go.sh it starts octave and when I exit it continues with the script.


When I add pause() or pause(10) to the bottom of oct.txt and I call octave with the command octave -q oct.txt & it behaves as supposed:

  1. the script starts octave in background and continues
  2. eventually the script ends leaving alive the octave windows

Unfortunately the windows of octave is frozen from the pause command and not so useful.


  • GNU bash, version 4.3.11
  • GNU Octave, version 3.8.1
То же самое здесь, пример Хастура работает точно, как он говорит. +1 для меня. MariusMatutiae 8 лет назад 0
Ах, я забыл упомянуть сценарии, где не интерактивные. Добавил это. Мне жаль! dronus 8 лет назад 0