Mostrar gráfico do Octave do shell script

Mostrar gráfico do Octave do shell script

Se eu invocar o Octave para traçar algo, ele precisará do prompt interativo para continuar em execução e mostrar o enredo.

Ao executar a partir da linha de comando, a --persistopção forçará o Octave a permanecer aberto após todos os comandos do Octave serem executados, para que eu possa ver e manipular o gráfico.

--persist Torne-se interativo após --eval ou leia o FILE.

No entanto, quando invoco o Octave a partir de um script de shell não interativo, ele não pode entrar no modo interativo, não reage à --persistopção de linha de comando, nem ao pause()comando dentro dos scripts do Octave.

Existe alguma maneira de permitir que o Octave permaneça interativo de forma invisível, se invocado a partir de um script de shell?

Responder1

Tentei reproduzir seu problema mas não foi possível. Eu fiz esses arquivos de testeoct.txt

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

e go.sh(e eu o torno executável com 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

Quando eu executo ele ./go.shinicia octavee quando saio ele continua com o script.


Quando adiciono pause()ou pause(10)na parte inferior oct.txte chamo a oitava com o comando, octave -q oct.txt &ele se comporta como esperado:

  1. o roteiro começaoitavaem segundo plano e continua
  2. eventualmente o script termina deixando vivas as janelas de oitava

Infelizmente as janelas deoitavaécongeladasdo pausecomando e não é tão útil.


  • GNU bash, versão 4.3.11
  • GNU Oitava, versão 3.8.1

informação relacionada