2012-12-14 48 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重定向到一個文件。