Linux에서 셸 애플리케이션의 출력을 어떻게 숨길 수 있나요?

Linux에서 셸 애플리케이션의 출력을 어떻게 숨길 수 있나요?

Linux에서 쉘 애플리케이션의 화면 출력(printf)을 숨기려면 어떻게 해야 합니까?

답변1

프로그램의 출력이 표시되지 않도록 리디렉션할 수 있습니다.

$ program > /dev/null

이렇게 하면 표준 출력이 리디렉션됩니다. 여전히 오류가 표시됩니다.

$ program &> /dev/null

그러면 오류를 포함한 모든 출력이 리디렉션됩니다.

답변2

명령줄에는 세 가지 I/O 장치를 사용할 수 있습니다.

 standard input  - 0
 standard output - 1
 standard error  - 2

표준 출력(기본 출력)을 파일로 리디렉션하고 파일을 덮어쓰려면 다음을 사용하세요.

 command > file.log

file.log에 추가하려면 두 개의 >s를 사용하십시오.

 command >> file.log

표준 오류를 file.log로 리디렉션하려면 다음을 사용하세요.

 command 2> file.log

그리고 추가하려면

 command 2>> file.log

출력을 하나의 스트림으로 결합하고 모두 한 곳으로 보내려면

 command > file.log 2>&1

이는 2(표준 오류)를 1(표준 출력)로 보내고 표준 출력을 file.log로 보냅니다.

표준 입력을 표준 입력이 필요한 명령으로 리디렉션하는 것도 가능합니다.

 command << file.txt


자세한 내용은 다음을 확인하세요.고급 Bash 스크립팅 가이드.

답변3

표준 출력 숨기기:

./command >/dev/null

표준 및 오류 출력 숨기기:

./command >/dev/null 2>&1

표준 출력 및 오류 출력을 숨기고 터미널을 해제합니다(백그라운드에서 명령 실행).

./command >/dev/null 2>&1 &

답변4

을 위한맥 OS X v10.6(눈표범):

출력/오류 파일 설명자를 확인하여 프로그램에 알리지 않고 출력을 숨겨야 하는 경우 셸에서 다음을 사용해 볼 수 있습니다.

stty flusho; command ;stty -flusho

또는 터미널에서 입력을 숨기려는 경우:

stty  -echo; command ;stty  echo

자세한 내용은 stty(1) 매뉴얼 페이지를 참조하십시오.

Linux의 경우 내가 아는 것은우분투 10.04(Lucid Lynx) 및 일부 Debian/Arch Linux(아래 설명 - 감사합니다, hendry)에는 설정이 없습니다 flusho(맨 페이지에서 다른 적절한 항목을 볼 수 없습니다). 어쨌든 설정 echo은 Ubuntu에서 작동합니다.

관련 정보