스크립트 명령 출력 숨기기

스크립트 명령 출력 숨기기

특정 컴퓨터를 최상의 설정으로 자동 구성하는 셸 스크립트를 작성 중입니다. 에코 출력을 제외하고 이 스크립트의 모든 출력을 숨기고 싶습니다. 가능합니까?

답변1

다음을 사용하여 스크립트를 시작하세요.

exec 3>&1 1>/dev/null 2>&1

그러면 stdout에 대한 원본 파일 설명자가 &3에 저장되고 stdout 및 stderr이 /dev/null로 리디렉션됩니다. 무언가를 인쇄하고 싶을 때마다 다음과 같이 출력을 &3으로 리디렉션하세요.

echo "This message won't be output"
echo "But this one will" >&3

그리고 해당 세부 사항을 숨기려면 fd 3에 에코되는 함수를 정의하면 됩니다.

say() {
    echo >&3 "$@"
}

say "This goes to the log"

답변2

/dev/null다음을 추가하여 stdout을 리디렉션할 수 있습니다.

1>/dev/null

출력을 생성하는 스크립트의 각 줄 끝에.

다음을 추가하여 동일한 방식으로 오류를 리디렉션할 수 있습니다.

2>/dev/null

대부분의 명령에는 콘솔에 대한 일반 출력을 끄는 옵션도 있습니다 -q. 사용하는 명령의 맨페이지를 확인하세요.

관련 정보