12
これはしばらくの間問題だったと私はそれについて多くの議論を見つけたが、私はそれが完了するための方法が最終的には得られませんでした: stdoutとstderrの両方をパイプします。 bashでは、これは単純に次のようになります。パイプ、stdoutとstderrの両方が魚のシェル
cmd 2>&1 | cmd2
これはしばらくの間問題だったと私はそれについて多くの議論を見つけたが、私はそれが完了するための方法が最終的には得られませんでした: stdoutとstderrの両方をパイプします。 bashでは、これは単純に次のようになります。パイプ、stdoutとstderrの両方が魚のシェル
cmd 2>&1 | cmd2
この構文は魚でも機能します。デモ:あなたはまた、魚のstderrのリダイレクト記号を使用するcmd1 ^&1 | cmd2
を使用することができます
$ function cmd1
sh -c 'echo "this is stdout"; echo "this is stderr" >&2'
end
$ function cmd2
rev
end
$ cmd1 | cmd2
this is stderr
tuodts si siht
$ cmd1 2>&1 | cmd2
rredts si siht
tuodts si siht
。
ドキュメント:https://fishshell.com/docs/current/index.html#redirects
完璧。私は古いバージョンを使用していたことが判明しました。 –
をファイルにリダイレクトするには、 'echo meow>/tmp/meow 2>&1'が使えます。 stdoutリダイレクションの後にstderrリダイレクションが必要です。 – nhooyr