如果我呼叫 Octave 來繪製某些內容,它需要互動式提示才能保持運作並顯示繪圖。
從命令列運行時,該--persist
選項將強制 Octave 在執行所有 Octave 命令後保持開啟狀態,以便我可以查看和操作繪圖。
--persist 在 --eval 或從 FILE 讀取之後進行互動。
但是,當我從非互動式 shell 腳本呼叫 Octave 時,它無法進入互動模式,不會對--persist
命令列選項或pause()
Octave 腳本內的命令做出反應。
如果從 shell 腳本調用,是否有任何方法可以讓 Octave 隱形地保持互動?
答案1
我嘗試重現您的問題,但這是不可能的。我做了這個測試文件oct.txt
x = -10:.1:10;
y = sin(x).*exp(-abs(x));
plot(x,y)
和go.sh
(我使它可執行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
當我運行它時,./go.sh
它會啟動octave
,當我退出時,它會繼續執行腳本。
當我將pause()
或添加pause(10)
到底部oct.txt
並使用命令調用八度時,octave -q oct.txt &
它的行為如下:
- 腳本開始八度在後台並繼續
- 最終腳本結束,留下八度音階窗口
不幸的是窗戶八度是冷凍的來自pause
命令並沒有那麼有用。
- GNU bash,版本 4.3.11
- GNU Octave,版本 3.8.1