파일 설명자를 닫는 구문이 대부분 혼란스럽습니다. 예를 들면 다음과 같습니다. n>&-
n이라는 파일 설명자를 닫고 있습니다. 맞나요?
하지만 뭔가를 다른 파일 설명자로 리디렉션하려면 이 작업을 수행해야 하므로 다른 리디렉션 명령을 사용할 때만 태그가 파일 설명자로 사용되고 이것이 정확해야 한다는 것을 알고 있습니다 n>&1
. &
맞 >
습니까?
또한 기호를 사용하여 다음에서/로 또는 다음 -
으로 리디렉션할 수 있습니다 .stdin
stdout
cat -
그렇다면 위의 규칙을 고려할 때 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.