Bash를 사용하여 명령어의 모든 출력을 억제하려면 어떻게 해야 합니까?
파라미터가 있는 프로그램을 실행하는 Bash 스크립트가 있습니다.그 프로그램은 몇 가지 상태를 출력합니다(이렇게, 저렇게...).이 프로그램을 조용하게 하는 방법은 없습니다.스크립트에 아무것도 표시되지 않도록 하려면 어떻게 해야 합니까?
Windows의 에코 오프 같은 것을 찾고 있습니다.
다음으로 늘 디바이스(비트버킷)에 표준 출력을 송신합니다.
scriptname >/dev/null
또, 에러 메세지를 송신하는 경우는, 다음의 어느쪽인가를 사용합니다(최초의 것은 모든 셸에서는 동작하지 않는 경우가 있습니다).
scriptname &>/dev/null
scriptname >/dev/null 2>&1
scriptname >/dev/null 2>/dev/null
또한 메시지를 녹음하고 싶지만 볼 수 없는 경우 를 바꿉니다./dev/null다음과 같은 실제 파일을 사용합니다.
scriptname &>scriptname.out
Windows cmd.exe(여기서 "null"은 "/dev/null"과 동일)에서는 다음과 같습니다.
scriptname >nul 2>nul
뭐랄까
script > /dev/null 2>&1
이것에 의해, 표준 출력과 에러 출력을 방지해, 양쪽 모두를 로 리다이렉트 합니다./dev/null.
경우에 따라서는 명령 결과를 변수에 할당하는 방법도 있습니다.
$ DUMMY=$( grep root /etc/passwd 2>&1 )
$ echo $?
0
$ DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
1
Bash 및 기타 POSIX 명령줄 인터프리터는 변수 할당을 명령어로 간주하지 않기 때문에 현재 명령어의 반환 코드가 유지됩니다.
주의: 에의 할당typeset또는declare키워드는 명령어로 간주되기 때문에 서브셸에서 실행되는 명령어가 아닌 할당 자체인 경우 평가된 반환 코드입니다.
$ declare DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
0
해라
: $(yourcommand)
:'아무것도 하지 않는다'의 줄임말입니다.
$()당신의 명령일 뿐입니다.
Andynormancx의 투고와 마찬가지로 다음을 사용합니다(유닉스 환경에서 작업하는 경우).
scriptname > /dev/null
또는 Windows 환경에서 작업하는 경우 다음을 사용할 수 있습니다.
scriptname > nul
이것은 다른 옵션입니다.
scriptname |& :
Linux Documentation Project의 다음 예를 참조하십시오.
3.6 샘플: stderr 및 stdout 2 파일
이렇게 하면 프로그램의 모든 출력이 파일에 저장됩니다.명령어를 절대 사일런트 상태로 전달할 경우 cron 엔트리에 적합합니다.
rm -f $(find / -name core) &> /dev/null
즉, 다음과 같은 간단한 리다이렉션을 사용할 수 있습니다.
/path/to/command &>/dev/null
스크립트에서 출력하는 행에 다음 항목을 추가할 수 있습니다.
some_code 2>>/dev/null
아니면 다른 방법으로도 할 수 있습니다.
some_code >>/dev/null
>&-fileescriptor를 닫으면 /dev/module로 리다이렉트하지 않습니다.
foo 2>&- >&-
stdin도 닫을 수 있습니다.foo 2>&- >&- <&-
언급URL : https://stackoverflow.com/questions/617182/how-can-i-suppress-all-output-from-a-command-using-bash
'programing' 카테고리의 다른 글
| 로컬 및 원격 Git 저장소의 마스터 분기 이름 변경 (0) | 2023.04.10 |
|---|---|
| UI View를 이미지로 변환하는 방법 (0) | 2023.04.10 |
| 여러 개의 (excel) 파일을 R로 읽으려면 어떻게 해야 합니까? (0) | 2023.04.10 |
| 'cut' 명령을 사용하여 동일한 순차 구분 기호를 하나로 처리하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
| 외부 데이터 로드 시 콘솔에 XHR 로드가 완료되었습니다. (0) | 2023.04.05 |