Я хотів би зробити виведення сценарію bash додаткової інформації для дескрипторів файлів (FD), більших або рівних 3, коли вони відкриті. Щоб перевірити, чи відкритий FD, я створив наступний трюк:
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
Цього достатньо для моїх потреб, але мені цікаво, чи існує більш ідіоматичний спосіб тестування, якщо FD дійсний. Я особливо зацікавлений про те, чи існує відображення системного fcntl(1)виклику до команди оболонки, яка допускала б витяг FD прапорів ( O_WRONLYі O_RDWRдля тестування чи FD перезаписує, а O_RDONLYй O_RDWRдля тестування чи FD читається).
<>? Оболонка не збирається читати з її складніше, чому б ви хотіли відкрити її в режимі read + write? Що ви маєте на увазі з тим, що сталося із внутрішньою? ?