從 shell 腳本顯示倍頻圖

從 shell 腳本顯示倍頻圖

如果我呼叫 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 &它的行為如下:

  1. 腳本開始八度在後台並繼續
  2. 最終腳本結束,留下八度音階窗口

不幸的是窗戶八度冷凍的來自pause命令並沒有那麼有用。


  • GNU bash,版本 4.3.11
  • GNU Octave,版本 3.8.1

相關內容