Я хотів би зробити виведення сценарію 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? Що ви маєте на увазі з тим, що сталося із внутрішньою? ?