스크립트 명령 출력 숨기기

스크립트 명령 출력 숨기기

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

답변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표준 출력을 다음으로 리디렉션할 수 있습니다.

1>/dev/null

출력을 생성할 스크립트의 각 줄 끝에 있습니다.

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

2>/dev/null

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

관련 정보