В учебнике bash, который я читаю, говорится, что если вы откроете дескриптор файла для чтения, т.е.
exec 3< echolist
Тогда вы должны закрыть это так,
exec 3<&-
Однако, если вы открываете дескриптор файла для записи, он должен быть закрыт следующим образом:
exec 3>&-
Тем не менее, когда я смотрю в Интернете, я вижу людей, открывающих файлы, а затем закрывающих их следующим образом:
exec 3>&-
ПРИМЕЧАНИЕ: когда, согласно учебнику, они должны использовать exec 3<&1
.
Итак, мой вопрос, все ли файловые дескрипторы могут быть закрыты через exec n>&-
где n - номер файлового дескриптора? Независимо от того, был ли он открыт для чтения, письма или и того, и другого?
>&-
и<&-
является Ф.Д. по умолчанию , если не указано (>&-
в1>&-
то время как<&-
есть0<&-
). То же самое дляx>&y
чего то же самое,x<&y
за исключением случаев, когдаx
не предусмотрено.