Ruby on rails 如何正确地输送“a”的输出;bundle exec rake…“;命令

Ruby on rails 如何正确地输送“a”的输出;bundle exec rake…“;命令,ruby-on-rails,bash,grep,pipe,rake,Ruby On Rails,Bash,Grep,Pipe,Rake,我有一个耙子,我像这样跑 be rake fix_pf_administrator_pct_assets rake任务是更大的rails应用程序的一部分 代码中有一个循环,还有一个睡眠1, 所以我得到了一个非常“实时”的脚本输出 然而,如果我这样做 be rake fix_pf_administrator_pct_assets | grep mydebugprint 我必须等到整个脚本完成后才能看到结果 如何在能够grep的同时获得脚本的实时输出 对于有趣的行。如果您在使用GNU coreu

我有一个耙子,我像这样跑

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

代码中有一个循环,还有一个睡眠1, 所以我得到了一个非常“实时”的脚本输出

然而,如果我这样做

be rake fix_pf_administrator_pct_assets | grep mydebugprint
我必须等到整个脚本完成后才能看到结果

如何在能够grep的同时获得脚本的实时输出
对于有趣的行。

如果您在使用GNU coreutils的systetm上,您可以强制对rake任务的输出进行行缓冲:(假设“be”不是shell别名,而是命令)


试试这个问题第一个答案的第二个选项基本上,它在一个名为
output
的文件上运行脚本输出,然后使用
&
将进程移到后台,然后在该文件上运行
tail-f
以跟踪更改,并将当前macOS上的输出变为灰色
stdbuf --output=L be rake fix_pf_administrator_pct_assets | grep mydebugprint