2012-12-14 47 views
1

我试图运行jruby -S rake db:migrate操作。在bash中读取错误信息

这将导致一个错误,这超过了我的bash终端持有的行数,所以我不能看到最相关的线,我只能坚持〜1000行:

.... 
org/jruby/runtime/Block.java:89:in `call' 
org/jruby/RubyProc.java:261:in `call' 
org/jruby/RubyProc.java:249:in `call19' 
org/jruby/RubyProc$INVOKER$i$0$0$call19.gen:-1:in `call' 
org/jruby/internal/runtime/methods/DynamicMethod.java:216:in `call' 
org/jruby/internal/runtime/methods/DynamicMethod.java:212:in `call' 
org/jruby/runtime/callsite/CachingCallSite.java:202:in `call' 
org/jruby/ast/CallTwoArgNode.java:59:in `interpret' 
.... 

我试图jruby -S rake db:migrate > migrate.out但错误信息仍然出现在我的终端和migrate.out内容是

== ChangeFieldsOnFoo: migrating ======================================== 
-- remove_column(:foos, :bar) 

当然必须有阅读此错误消息的方式!

+0

'bash'是一个[* shell *](http://stackoverflow.com/tags/shell/info),不是*终端*。什么是你的[*终端*](http://stackoverflow.com/tags/terminal/info)? – Johnsyweb

回答

2

stderr2)使用2>&1和管道(|)通过“传呼机”,如less输出,以保持它在屏幕上,直到你完成它stdout1):

jruby -S rake db:migrate 2>&1 | less 
+2

好的,详细的回应,先生。你以更好的方式接近它,而我只解释如何将它记录到文件中。它也看起来像你打我一秒钟。干杯! –

1

试试这个:jruby -S rake db:migrate >> migrate.out 2>&1这会将stdoutstderr重定向到一个文件。