Bir bash komut dosyası çıktısı, açık olduklarında dosya tanımlayıcılarına (FD) 3 veya daha büyük ek bilgiler yapmak istiyorum. Bir FD'nin açık olup olmadığını test etmek için aşağıdaki hileyi tasarladım:
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
Bu benim ihtiyaçlarım için yeterli, ama bir FD geçerli olup olmadığını daha deyimsel bir test yolu olup olmadığını merak ediyorum. Özellikle bir eşleştirmesini bulunup bulunmadığına dair ilgilenen ediyorum fcntl(1)
(FD bayrakları alınmasını sağlayacak bir kabuk komutuna syscall, O_WRONLY
ve O_RDWR
FD yazılabilir olup olmadığını test etmek için, ve O_RDONLY
ve O_RDWR
FD okunabilir olup olmadığını test etmek için).
<>
? Kabuk stderr'den okumayacak, neden okuma + yazmada açmak istesin? İçsel olana ne demek istiyorsun ? ?