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 --persist
opçã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 à --persist
opçã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.sh
inicia octave
e quando saio ele continua com o script.
Quando adiciono pause()
ou pause(10)
na parte inferior oct.txt
e chamo a oitava com o comando, octave -q oct.txt &
ele se comporta como esperado:
- o roteiro começaoitavaem segundo plano e continua
- eventualmente o script termina deixando vivas as janelas de oitava
Infelizmente as janelas deoitavaécongeladasdo pause
comando e não é tão útil.
- GNU bash, versão 4.3.11
- GNU Oitava, versão 3.8.1