0

コマンドの出力をキャプチャしようとしています。コマンドが実行されると正常に動作します。ただし、エラーが発生した場合、コマンドラインに表示される内容をキャプチャできません

例えば。

$ out=`/opt/torque/bin/qsub submitscript`
qsub: Unauthorized Request  MSG=group ACL is not satisfied: user abc@xyz.org, queue home
$ echo $out

$

$out にメッセージを表示したい

ありがとう!

4

2 に答える 2

3

エラーは stderr にあるため、エラーを stdout にリダイレクトして、バッククォートでキャプチャする必要があります。

out=`/opt/torque/bin/qsub submitscript 2>&1`
if [ $? -gt 0 ] ; then
    # By convention, this is sent to stderr, but if you need it on
    # stdout, just remove the >&2 redirection
    echo "Error: $out" >&2
else
    echo "Success: $out"
fi

コマンドの終了ステータスをテストして、出力が何を表しているかを確認する必要があります (一例を示します)。perl の場合も同様ですが、もちろん構文が少し異なります。

于 2013-02-27T23:33:54.813 に答える
2

このようにしてみましたか

$ out=`/opt/torque/bin/qsub submitscript 2>&1 > /dev/null`
$ echo $out
于 2013-02-27T23:27:37.473 に答える