누군가 왜 이런 짓을 하겠는가?
(exec <&- >&- 2>&-; gzip somefile.txt) 2>&1 &
<&- >&- 2>&- "...각각 stdin, stdout 및 stderr을 닫는 것을 의미합니다.."
그런데 "2>&1"이 닫혀 있으면 왜 이렇게 할까요?
답변1
표준 파일 설명자가 열려 있어야 하므로 언급된 문이 올바르지 않습니다.
응용 프로그램은 파일 설명자가 읽기용으로 열리지 않거나 파일 설명자가 쓰기용으로 열려 있지 않은 유틸리티나 응용 프로그램을 실행하기 위해
[n]<&-
또는 연산자를 사용해서는 안 됩니다 . 이로 인해 실행된 프로그램(또는 내장 셸) 동작이 부적절해질 수 있습니다. 이러한 파일 설명자를 실행 중인 유틸리티나 애플리케이션에 전달하지 않으려면 애플리케이션은 이를 닫을 뿐만 아니라 일부 구현에서 그렇게 할 수 있지만 애플리케이션이 이에 의존해서는 안 되는 경우 자동으로 다시 열어야 합니다.[n]>&-
0
1
2
/dev/null
지시어는 오히려
gzip somefile.txt >/dev/null 2>&1 &
답변2
그들이 한 일을 할 이유가 없었습니다. 2>&1
이 예에서는 실제로 완전히 중복됩니다.