2016-12-29 27 views
1

私の出力をstderrにリダイレクトしたいと思います。私はをstderrに出力をリダイレクトしたい 'auth_tester_results' ブール値がfalseの場合はrakeタスクに出力を標準エラー出力にリダイレクト

namespace :authentication do 

    desc "Automatically runs authentication tester and notifies in case of failure" 
    task :tester => :environment do 
    auth_tester_results = AuthenticationTester.perform 

    exit(auth_tester_results.success? ? 0 : 1) 
    end 
end 

を呼び出し、cronジョブ

function auth_tester { 
    cd /data/$1/current && bundle exec rake 'authentication:tester' 1> /dev/null 
} 

を持っています。どのようにそれを行うことができますか?

答えて

3

あなたはすでにシェルを扱っているので、シェルでそれを行う:

function auth_tester { 
    cd /data/$1/current && \ 
    bundle exec rake 'authentication:tester' >/dev/null 2>&1 
    #         HERE: ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑ 
} 

stderrid = 2を持っており、我々は/dev/nullからstdoutをリダイレクトし、stdoutstderr、最終的に/dev/nullにリダイレクトされます。

反対を使用し、stderrstdoutをリダイレクトする:1はIO#putsとの適切な受信機を使用して、

1>&2 

ルビーからの出力をリダイレクトするには:

$stderr.puts "Goes to stderr" 
+0

私の質問は、私の失敗出力をリダイレクトする方法ですstderrに。あなたの答えはstderrをstdoutにリダイレクトする方法にも役立ちます。しかし、私の失敗出力をstderrにリダイレクトする方法については、 – krishna

+0

にお問い合わせください。アップデートをご覧ください。 – mudasobwa

関連する問題