지금까지 내가 볼, 수 exec 3>&-
와 exec 3<&-
관계없이 연 방법입니다 같은 및 파일 기술자에서 사용할 수 있습니다. 섹션 2.7.6과의 POSIX 정의의 2.7.5에 따르면 셸 명령 언어 :
2.7.5 입력 파일 디스크립터 복제
리디렉션 연산자 :
[n] <& 단어
[...한조각...]
단어가 '-'로 평가되면 파일 설명자 n 또는 n이 지정되지 않은 경우 표준 입력이 닫힙니다. 열려 있지 않은 파일 디스크립터를 닫으려고 시도해도 오류가 아닙니다. 단어가 다른 것으로 평가되면 동작이 지정되지 않습니다.
2.7.6 출력 파일 디스크립터 복제
리디렉션 연산자 :
[n]> & 단어
[...한조각...]
단어가 '-'로 평가되면 파일 설명자 n 또는 n이 지정되지 않은 경우 표준 출력이 닫힙니다. 열려 있지 않은 파일 디스크립터를 닫으려고 시도해도 오류가 아닙니다. 단어가 다른 것으로 평가되면 동작이 지정되지 않습니다.
파일 디스크립터 n이 원래 열린 방법에 대해서는 아무것도 지정하지 않습니다. 이것은 close (2) 가 파일을 여는 방법에 신경 쓰지 않는다는 사실과 일치 합니다.
다음에 대한 간단한 설명 :
exec 3< /etc/passwd
exec 4> foo
exec 3<&-
exec 4<&-
이 대
exec 3< /etc/passwd
exec 4> foo
exec 3<&-
exec 4>&-
두 경우 모두 Bash가 정확히 동일한 작업을 수행함을 보여줍니다.
두 가지 재미있는 사실
>&-
및<&-
(지정되지 않은 기본 전략 중입니다>&-
입니다1>&-
동안이<&-
됩니다0<&-
). 제공되지 않은 경우x>&y
를x<&y
제외하고 는 동일합니다x
.