あいまいな出力リダイレクト

あいまいな出力リダイレクト

stderrをstdoutにリダイレクトしてからinitスクリプトのファイルにリダイレクトしようとしていますが、stderrをstdoutにインポートすると「あいまいな出力リダイレクト」エラーが発生します。 stdoutだけがエラーを引き起こさず、ログファイルと呼ばれるものに記録されます。私は次を試しました

-jar /jbeaulau_test/microservices/config-server-0.0.2-RELEASE.jar &>/jbeaulau_test/microservices/log/all.log &

-jar /jbeaulau_test/microservices/config-server-0.0.2-RELEASE.jar >/jbeaulau_test/microservices/log/all.log 2>&1 &

どんなアドバイスも本当にありがとうございます。

ベストアンサー1

(t)cshを実行している場合、Ambiguous output redirect.2つの競合するリダイレクトを設定しようとすると、次のことが発生します。

> echo foo > a > b
Ambiguous output redirect.

Bashでファイル名の代わりに複数の要素を含む配列を使用すると、次のエラーが発生する可能性があります。

$ set aa bb
$ echo foo > "$@"
bash: "$@": ambiguous redirect

答えで述べたようにcshでstderrリダイレクトが機能しません、この>&演算子は(t)cshで動作し、stdoutとstderrをリダイレクトします。 2>&1これはstderrをstdoutと同じ場所にリダイレクトする標準的な方法ですが、(t)cshはそれをサポートしません。代わりに、> foo 2>&1 リダイレクトターゲットfoo、一般パラメータ、およびリダイレクトターゲットを2組み合わせてリダイレクトが1競合するため、エラーが発生します。

>&Bashとzshでも動作しますが、標準機能ではありません。

おすすめ記事