[英]How to I get ruby `print` to echo to calling bash script?
我从bash shell脚本中调用ruby,例如
#!/bin/bash
# lots of stuff
ruby script.rb
# more stuff
我希望将在ruby脚本中print
的内容显示在shell脚本的stdout中,但事实并非如此。 奇怪的是,无论我用p
上没有显示出来。 我怎样才能将其用于print
?
快速答案:使用puts
。
我的猜测是这与STDOUT缓冲有关。 p
立即刷新缓冲区,而print
不刷新。 请改用puts
,它也会刷新,也可以将STDOUT设置为始终使用以下命令全局刷新:
$stdout.sync = true
要根据情况进行flush
,您始终可以自己调用flush
:
print ...
print ...
print ...
$stdout.flush
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.