Tôi có một bộ mô tả tập tin trỏ tới một ổ cắm (ví dụ mã bên dưới).Kiểm tra xem ổ cắm có bị đóng trong bash không?
exec 3<>/dev/tcp/localhost/9999
echo -e "Some Command\n" >&3
Đôi khi ổ cắm đó đóng và cần được mở lại (khởi động lại máy chủ).
Làm cách nào để kiểm tra xem ổ cắm (fd # 3 trong trường hợp này) có thể ghi được không?
Tiếng vang sẽ luôn thành công, bất kể ổ cắm đã được đóng hay chưa.
Bạn có muốn biết liệu nó có _is writable_ ** hay ** liệu _it có bị đóng_ không? Đầu tiên là một câu hỏi quyền, sau đó là câu hỏi của nhà nước. Đây chỉ là một chút liên quan (các filemode hiệu quả có thể bị ảnh hưởng bởi các cờ mở, có thể được gọi là _state_ nếu bạn muốn) – sehe
@sehe Nó không phải là một câu hỏi quyền. Anh ấy đang nói về ổ cắm. Không có quyền ghi được kết hợp với ổ cắm. Nếu bạn có thể mở ổ cắm, bạn có thể đọc nó và viết nó. – EJP
Cụ thể nhất là nếu nó bị đóng. Tôi biết nó có thể ghi, tôi có thể mở ổ cắm trong điều kiện bình thường, nhưng khi tôi mất kết nối (vấn đề mạng, máy chủ tắt trong khi kịch bản đang chạy, vv) Tôi cần phải cố gắng mở lại nó trước khi tiếp tục. –