이 두 줄 사이에 차이점이 있습니까?
/home/user/script.sh >> /home/user/stdout_and_error.log 2>&1
/home/user/script.sh 2>&1 >> /home/user/stdout_and_error.log
로그 파일에 스크립트의 stdout 및 실행 오류를 넣고 싶습니다. 차이가없는 경우 로깅 자체를 기록하려면 어떻게해야합니까?
예, 차이가 있습니다.
/home/user/script.sh >> /home/user/stdout_and_error.log 2>&1
이렇게하면 STDOUT과 STDERR이 모두 /home/user/stdout_and_error.log
.
/home/user/script.sh 2>&1 >> /home/user/stdout_and_error.log
이것은 STDOUT을 /home/user/stdout_and_error.log
에, STDERR을 이전에 STDOUT이었던 것에 보냅니다 .
셸 리디렉션을 수행하면 리디렉션의 왼쪽이 현재 리디렉션의 오른쪽이가는 곳으로 이동합니다. 의미에서 2>&1
STDOUT (1)이 현재가는 곳마다 STDERR (2)를 보냅니다.
그러나 나중에 STDOUT을 다른 곳으로 리디렉션하면 STDERR이 함께하지 않습니다. 이전에 STDOUT이 갔던 곳이면 어디든 계속 이동합니다. 이것이 첫 번째 예에서 STDOUT과 STDERR이 모두 같은 위치로 이동하지만 두 번째 예에서는 그렇지 않은 이유입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다