Vorrei fare in modo che uno script bash fornisca informazioni aggiuntive ai descrittori di file (FD) maggiori o uguali a 3, quando sono aperti. Per verificare se un FD è aperto, ho escogitato il seguente trucco:
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
Questo è sufficiente per le mie esigenze, ma sono curioso di sapere se esiste un modo più idiomatico di testare se un FD è valido. Sono particolarmente interessato al fatto che esista una mappatura della fcntl(1)
syscall su un comando shell, che consentirebbe il recupero dei flag FD ( O_WRONLY
e O_RDWR
per verificare se l'FD è scrivibile O_RDONLY
e O_RDWR
per verificare se l'FD è leggibile).
<>
? La shell non leggerà dal suo standard, perché dovresti aprirla in read + write? Cosa intendi con cosa è successo a intrinseco? ?