Trong shell, exec1) mở tệp và chuyển hướng 2) execing thực tế (thay thế hình ảnh quá trình hiện tại bằng hình ảnh quá trình khác).
Đây execlà những chuyển hướng.
Trước tiên, bạn chuyển hướng ( exec 1> >(tee $LOGFILE)) bộ stdoutmô tả (1) sang một đường ống được tạo thay thế quy trình được kết nối với một teequy trình chạy đồng thời có $LOGFILEđối số đầu tiên và sau đó bạn chuyển hướng bộ stderrmô tả (2) đến cùng một nơi với bộ mô tả 1bây giờ (tee ống).
Hãy nhớ rằng các trình biên dịch được kế thừa, bạn đã tạo ra tất cả tương lai stdoutvà stderrđầu ra đi vào teequy trình, ghi nó đến $LOGFILEvà bất cứ nơi nào trình biên bản 1 chỉ vào ban đầu (có thể là thiết bị đầu cuối của bạn).
Lưu ý:
Quá trình tee xuất ra thiết bị xuất chuẩn ban đầu (= filedescriptor gốc 1) bởi vì, khi bạn có thể tìm hiểu từ / tìm kiếm bash (1) cho Mở rộng lệnh đơn giản và Thay thế quy trình, thay thế quy trình ( >() <()) xảy ra (cùng với các mở rộng khác) trước đó chuyển hướng được thực thi, có nghĩa là chuyển hướng exec 1> >(tee "$LOGFILE")xảy ra sau khi tee đã bắt đầu, để lại teecùng một filedescriptor 1 mà nó được thừa hưởng từ vỏ cha. (Nếu nó là cách khác, teesẽ được thực hiện để ghi vào đầu vào của chính nó, điều này có thể làm cho nó bế tắc, tùy thuộc vào mẫu IO của nó).