在bash中读取错误消息

时间:2012-12-14 08:30:10

标签: ruby-on-rails bash jruby

我正在尝试运行jruby -S rake db:migrate操作。

这导致错误,超过了我的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)

当然必须有办法阅读此错误消息!

2 个答案:

答案 0 :(得分:2)

使用2stderr1)绑定到stdout2>&1)并通过“寻呼机”输出管道(|) “比如less将它保留在屏幕上直到你完成它:

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

答案 1 :(得分:1)

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