파일 설명자 닫기에 대한 구문 혼란

파일 설명자 닫기에 대한 구문 혼란

파일 설명자를 닫는 구문이 대부분 혼란스럽습니다. 예를 들면 다음과 같습니다. n>&-n이라는 파일 설명자를 닫고 있습니다. 맞나요?

하지만 뭔가를 다른 파일 설명자로 리디렉션하려면 이 작업을 수행해야 하므로 다른 리디렉션 명령을 사용할 때만 태그가 파일 설명자로 사용되고 이것이 정확해야 한다는 것을 알고 있습니다 n>&1. &>습니까?

또한 기호를 사용하여 다음에서/로 또는 다음 -으로 리디렉션할 수 있습니다 .stdinstdoutcat -

그렇다면 위의 규칙을 고려할 때 n>&-파일 설명자를 왜 닫아야 할까요? 다음으로 리디렉션되는 것 같습니다 stdin...

추신 : 참고로 나는http://tldp.org/LDP/abs/html/io-redirection.html그리고http://tldp.org/LDP/abs/html/special-chars.html

답변1

규칙이 있고 예외가 있습니다.

man bash | grep -C 3 '&-'
       Each redirection that may be preceded by a file descriptor  number  may
       instead be preceded by a word of the form {varname}.  In this case, for
       each redirection operator except >&- and <&-, the shell will allocate a
       file  descriptor  greater than or equal to 10 and assign it to varname.
       If >&- or <&- is preceded by {varname}, the value  of  varname  defines
       the file descriptor to close.

관련 정보