
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에서 작동합니다.