10/01/11 23:07:53
以下の処理のリダイレクトについて教えていただけますでしょうか?
もしくは、よくある処理のようなので解説しているサイトを教えていただけますでしょうか?
commandの結果を取得しつつ、画面及びファイルに出力
status=`exec 3>&1; { command 2>&1 3>&-; echo $? 1>&3; } | tee command.log 1>&2 3>&-`
echo $status
①execにより3で1を指した後にcommand実行時に3を閉じてるのは何故でしょうか?
必要性がよくわからないです。
同時に1が閉じられることはないですよね?
②どういう経路でcommandの結果はstatusに格納されているのでしょうか?
③tee実行時に行っているリダイレクトの意味はどのようなものでしょうか?
正直言って全体的によく分からないです。