command-line - 如何抑制以 Octave 为单位的命令输出?

标签 command-line octave

在Octave中,我可以取消或隐藏在行尾添加分号的指令输出:

octave:1> exp([0 1])
ans = [ 1.0000   2.7183 ]
octave:2> exp([0 1]);
octave:3> 


现在,如果函数在返回值之前显示文本(例如使用disp()print()),该如何抑制输出?换句话说,我希望能够做到这一点:

disp("Starting...");
% hide text the may get displayed after this point
% ...
% show all text again after this point
disp("Done!");

最佳答案

您可以修改PAGER变量(现在是一个函数)以重定向标准输出。在Unix系统上,您可以将其重定向到/dev/null。在Windows上,我尝试仅重定向到不执行任何操作且效果良好的Python程序。 (基本上,任何忽略输入的程序都可以)

PAGER('/dev/null');
page_screen_output(1);
page_output_immediately(1);


完成后,您只需将其更改回即可。也许将整个过程封装在一个函数中。

oldpager = PAGER('/dev/null');
oldpso = page_screen_output(1);
oldpoi = page_output_immediately(1);

% Call function here

PAGER(oldpager);
page_screen_output(oldpso);
page_output_immediately(oldpoi);


您也可以简单地非交互式地运行脚本,然后正常重定向输出。

octave script.m > /dev/null

关于command-line - 如何抑制以 Octave 为单位的命令输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260619/

相关文章:

objective-c - Cocoa:向现有 GUI 应用程序添加命令行功能

linux - ant 命令在 Eclipse 中运行,但不能在 linux 命令行中运行

octave - 在向量中搜索特定字符串( Octave )

python - 使用掩蔽数组的一行计算数组行的平均值

octave - 如何绘制线性回归成本函数的等高线图?

linux - 在 Linux 中使用单词定界符拆分和重命名文件

控制台应用程序的 Windows 默认大小

c - 为什么下面的shell命令在命令行中直接执行时可以工作,但通过C程序使用popen/system执行时却不起作用?

octave - 如何让 Octave 默认使用 "gnuplot"而不是 "fltk"?

octave - 如何将一列/一行插入矩阵?