如何正确地传递 "bundle exec rake ..." 命令的输出

how to properly pipe the output of a "bundle exec rake ..." command

我有一个抽成 我 运行 像这样

be rake fix_pf_administrator_pct_assets

rake 任务是更大的 rails 应用程序的一部分。

代码中有一个循环,还有一个sleep 1, 所以我得到了非常 "real time" 的脚本输出。

但是,如果我这样做

be rake fix_pf_administrator_pct_assets | grep mydebugprint

我必须等到整个脚本完成才能看到结果。

我怎样才能获得脚本的实时输出,同时能够 grep 有趣的台词。

如果您使用的是带有 GNU coreutils 的系统,您可以强制对 rake 任务的输出进行行缓冲:(假设 "be" 不是 shell 别名而是命令)

stdbuf --output=L be rake fix_pf_administrator_pct_assets | grep mydebugprint

stdbuf(1) man page