으로 리디렉션합니다.이 코드는 오류를 발생시키고 STDOUT을 억제하기 위해 작동하지만 STDERR을 ERROR 변수에 저장하지 않습니다.STDERR을 변수
ERROR = $(memtester 900 1 > /dev/null)
으로 리디렉션합니다.이 코드는 오류를 발생시키고 STDOUT을 억제하기 위해 작동하지만 STDERR을 ERROR 변수에 저장하지 않습니다.STDERR을 변수
ERROR = $(memtester 900 1 > /dev/null)
이처럼 캡처 할 수 있습니다 : 리디렉션 연산자의
error=$(memtester 900 1 2>&1 >/dev/null)
위해 여기에 중요하다.
2>&1
은 - 표준 오류는>/dev/null
을 stdout에 리디렉션 - 당신은`=`쉘에서 변수 할당의 주위에 공간을 가질 수 없습니다 /dev/null
에 표준 출력 리디렉션합니다. – Barmar
그리고 대문자 변수 이름은 응용 프로그램 환경 변수 용으로 예약되어 있으므로 사용하면 안됩니다. – Barmar
stderr를 stdout으로 리디렉션하는 작업은 2> & 1에 의해 수행되며 &는 파일 설명자를 따르는 데 사용됩니다. 그래서 다음 코드는 당신을 위해 작동합니다. '오류 = $ ({memtester 900>/dev/null;} 2> & 1' – rowan