私は偶然見つけました。
exec 1> >(logger -s -t $(basename $0)) 2>&1
現在スクリプトの出力をシステムロガーにリダイレクトするために使用されます(見たことがないが確認したい場合)。https://stackoverflow.com/questions/8888251/understanding-bash-exec-12-commandシェルの知識を広げてみてください)。
1>
これがなぜ必要なのか知りたいです。exec >(logger -s -t test) 2>&1
失敗の理由は次のようなので、これが必要になるようです。
bash: /dev/fd/63: Permission denied
bash: exec: /dev/fd/63: cannot execute: Permission denied
しかし、上記の質問に応じてリダイレクトで十分なので、省略は1>
私が直感的に行ったことです。次に、通常どおりstderrをstdoutにリダイレクトします。exec >[some redirection target]
2>&1
私はbash 4.4.19を使用しています。
ベストアンサー1
>
これは必須です(代わりに単に追加で作成できます1
)。これ1>
>
>(...)
プロセスの交換(filename)のように展開され、/dev/fd/13
標準>
出力をそのファイルにリダイレクトします。それから> >(...)
。