从 shell 脚本显示 Octave 图

从 shell 脚本显示 Octave 图

如果我调用 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

相关内容