Both zsh and ksh have a way to open a file or duplicate a file descriptor and let the interpreter pick the descriptor saving the newly-allocated file descriptor number in a variable. In particular:
exec {fd}<&0 will duplicate stdin and save the newly allocated file-descriptor number to fd. Also: exec {fd}<filename opens filename with a new file descriptor and saves the number allocated in fd. Short of going outside of the language and using lsof, /proc, or the processes table, I haven't been able to figure out how to do the corresponding thing in bash. Is there a way? If not, it would be great if a future version had this extension that zsh and ksh both seem to have. Thanks!