脚本的输出何时会附加到文件中,我该怎么做才能规避结果?

阿达维斯

我有一个名为的脚本my_bash.sh,它调用了perl脚本,并将perl脚本的输出附加到日志文件中。仅在perl脚本完成后才写入文件吗?

my_bash.sh

#!/bin/bash
echo "Starting!" > "my_log.log"
perl my_perl.pl >> "my_log.log" 2>&1
echo "Ending!" >> "my_log.log"

问题是,随着perl脚本的运行,我想在my_log.log文件运行时对其内容进行操作,但是文件似乎是空白的。有适当的方法来做到这一点吗?如果您需要更多信息,请告诉我。

my_perl.pl

...
foreach $component (@arrayOfComponents)
{
  print "Component Name: $component (MORE_INFO)\n";

  # Do some work to gather more info (including other prints)
  #...

  # I want to replace "MORE_INFO" above with what I've calculated here
  system("sed 's/MORE_INFO/$moreInfo/' my_log.log");
}

sed因为工作不正常print的语句还没有去到了my_log.log

恶魔

Perl默认会缓冲输出。要禁用缓冲,请将其设置$|为非零值。添加

$|++;

在您的perl脚本的顶部。

报价perldoc pervar

$|

如果设置为非零,则在当前选定的输出通道上每次写入或打印后立即强制执行刷新。默认值为0(无论通道是否真正被系统缓冲;$|仅告诉您是否在每次写操作后都明确要求Perl刷新)。STDOUT如果输出到终端,通常将被行缓冲,否则将被块缓冲。设置此变量主要在输出到管道或套接字时很有用,例如在rsh下运行Perl程序并希望看到正在发生的输出时。这对输入缓冲没有影响。参见getc。请参阅选择如何选择输出通道。另请参见IO :: Handle。

助记符:当您希望管道变热时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我该怎么做才能让这个函数输出?

我该怎么做才能让 MD 文件在 Notepad++ 中更明显?

误删除了/ usr / include。我该怎么做才能重新安装该目录中的文件?

我该怎么做才能使NO_OPTION工作?

我该怎么做才能减小jar /类?

我该怎么做才能提高图像质量?

我该怎么做才能使这个菜单响应?

我该怎么做才能运行此BASIC程序?

我该怎么做才能使它正常工作

我该怎么做才能消除此Reflex.Dom代码中的unsafePerformIO?

我该怎么做才能减少Eclipse中的APK大小?

我该怎么做才能不重复xaml中的代码?

我该怎么做才能匹配“安装在”列中的值“ /”?

我该怎么做才能纠正“过滤器()”中的错误,然后“找不到对象”?

无法将 html javascript 添加到单独的 .js 文件(我该怎么做)?

未知的内容将此添加到我的htaccess中。该怎么做呢?

Google表格中的Gapps脚本无法滚动,我该怎么做

我应该怎么做才能在WebStorm的.ts文件中解析“角度”

我想将文件中的内容显示到控制台我该怎么做?

我正在尝试在(for 循环)中运行字符串。我该怎么做才能解决它?

在Astersik中获取呼叫文件之前,我该怎么做?

我该怎么做才能摆脱主函数 def 模型中的“int”对象不可下标错误:

实体框架6-更新edmx时会删除实体类,为什么?我该怎么做才能阻止它?

在BigQuery中,我希望获得与pl / sql中的listagg函数相同的结果。我该怎么做。

HQL递归,我该怎么做?

我该怎么做(datarow)

Powershell-我该怎么做

我是通过RDP入侵的。我该怎么做才能增强安全性?

我该怎么做才能让 MDB 最后部署在我的野蝇上