exec 3>&1 # Save current "value" of stdout.
ls -l 2>&1 >&3 3>&- | grep bad 3>&- # Close fd 3 for 'grep' (but not 'ls').
# ^^^^ ^^^^
exec 3>&- # Now close it for the remainder of the script.
Tôi nhận được dòng thứ 3 nơi fd 3 đang bị đóng.Giúp tôi hiểu chuyển hướng io đơn giản này trong bash từ hướng dẫn ABS
Nghi ngờ: Chuyển hướng dòng 1 fd 3 đến stdout, trên toàn cầu ... phải không?
Câu hỏi: Điều gì đang xảy ra trên dòng thứ 2? Vui lòng cung cấp giải thích chi tiết nếu có thể.
Mặc dù người ta có thể thực hiện các thủ thuật phức tạp với các mô tả bổ sung trong * sh, cho dù điều này nên được thực hiện cho schlub nghèo người phải đọc nó tiếp theo (ví dụ bạn) là ít nhất định. – msw
@msw Tôi đã xem xét hồ sơ của bạn và bạn dường như có kiến thức rất tốt về vỏ Linux/UNIX, vv Tôi tôn trọng bạn vì điều đó, nhưng tôi không đánh giá cao bạn gọi tôi là một schlub. Nếu bạn không thể giúp đỡ, hãy giữ những lời khuyên của bạn cho chính mình. – abc
Tôi cũng là schlub nghèo, những người thường phải đọc lại mã của riêng tôi vào một ngày sau đó. Tôi xin lỗi bạn đã nhận xét cá nhân của tôi, vì nó là chung chung, có ý định được phần nào tự ti, và chắc chắn nhất ** không ** dự định xúc phạm. Phần lớn tiểu sử của tôi là tiểu thuyết, ngoài việc tôi còn quá dài. – msw