Mostrar gráfico de octava desde el script de shell

Mostrar gráfico de octava desde el script de shell

Si invoco a Octave para trazar algo, necesita que el mensaje interactivo siga ejecutándose y muestre la trama.

Cuando se ejecuta desde la línea de comandos, la --persistopción obligará a Octave a mantenerse abierto después de que se ejecuten todos los comandos de Octave, para que pueda ver y manipular la trama.

--persist Vuélvete interactivo después de --eval o leyendo desde ARCHIVO.

Sin embargo, cuando invoco Octave desde un script de Shell no interactivo, no puede ingresar al modo interactivo, no reacciona a la --persistopción de línea de comando ni al pause()comando dentro de los scripts de Octave.

¿Hay alguna manera de permitir que Octave permanezca interactivo de manera invisible, si se invoca desde un script de shell?

Respuesta1

Intento reproducir tu problema pero no fue posible. Hice estos archivos de pruebaoct.txt

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

y go.sh(y lo hago ejecutable con 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

Cuando lo ejecuto se ./go.shinicia octavey cuando salgo continúa con el script.


Cuando agrego pause()o pause(10)al final oct.txty llamo octava con el comando, octave -q oct.txt &se comporta como se supone:

  1. el guión comienzaoctavaen segundo plano y continúa
  2. eventualmente el guión termina dejando vivas las ventanas de octava

Desafortunadamente las ventanas deoctavaescongeladodel pausecomando y no tan útil.


  • Fiesta GNU, versión 4.3.11
  • GNU Octava, versión 3.8.1

información relacionada