如何让ruby`print`回应调用bash脚本?

时间:2018-02-13 22:46:21

标签: ruby bash shell

我从bash shell脚本调用ruby,比如

#!/bin/bash

# lots of stuff

ruby script.rb

# more stuff

我希望ruby脚本中的print能够在stdout中显示shell脚本,但它们并不是。奇怪的是,无论我在上使用p做什么都会出现。如何才能使print工作?

快速回答:使用puts

1 个答案:

答案 0 :(得分:5)

我的猜测是这与STDOUT缓冲有关。 p立即刷新缓冲区,而print则不会。使用puts代替,也可以刷新,或者您可以将STDOUT设置为始终使用以下内容进行全局刷新:

$stdout.sync = true

根据具体情况,您可以随时致电flush

print ...
print ...
print ...
$stdout.flush