我想在执行脚本后刷新输出,并且所有输出都不应该出现在我的终端屏幕中。
假设我有以下示例
#!/usr/bin/perl
print "HAI \n";
sleep 5;
Run Code Online (Sandbox Code Playgroud)
如果我执行上面的脚本
# ./file
HAI
#
Run Code Online (Sandbox Code Playgroud)
我想将上述输出作为
# ./file
#
Run Code Online (Sandbox Code Playgroud)
HAI 应该显示 5 秒,它应该被删除,并且终端中不应该有像腻子一样的输出。
如前所述,只需设置 $| 为真值将自动刷新您的结果。
当您说“HAI 应该显示 5 秒钟并且应该被删除并且终端中不应该有像腻子一样的输出。”时,您实际上是在描述从屏幕上删除打印的文本。
为此,您需要使用特殊输出。请参阅 Term::ANSIScreen 以获得一个可以帮助您做到这一点的 perl 模块。
这里有一些代码可以满足您的要求:
use strict;
use Term::ANSIScreen qw/:cursor :screen/;
$| = 1;
savepos;
print "HAI";
sleep 5;
loadpos;
clline();
Run Code Online (Sandbox Code Playgroud)