[USER@SERVER ~] sleep 3 &
[1] 5232
[USER@SERVER ~]
[1]+ Done sleep 3
[USER@SERVER ~]
이 두 메시지를 어떻게 / dev / null합니까? :
[1] 5232
[1]+ Done sleep 3
추신 : 그래서 프로세스의 출력이 필요하지만 언급 된 두 줄은 필요하지 않습니다!
답변
프로그램 출력이 아니며 유용한 쉘 정보입니다.
어쨌든 서브 쉘과 출력 리디렉션을 사용하여 숨길 수 있습니다
( sleep 3 & ) > /dev/null 2>&1
답변
bash 또는 zsh disown %1
에서 셸을 호출 하여 작업을 잊어 버리도록 할 수 있습니다 . 그러면 쉘은 해당 작업에 대한 메시지를 인쇄하지 않으며 jobs
SIGHUP을 실행 하거나 보낼 때이를 표시하지 않습니다 . zsh에서 &!
대신 작업을 시작하는 것은 즉시 작업 &
을 호출 disown
하는 것과 같습니다 .
답변
@Gilles에 대해서는 (아직) 설명 할 수 없지만 & disown
bash에서도 작동 하는 것 같습니다 .
sleep 3 & disown
답변
시험:
user@host:~$ read < <( sleep 10 & echo $! )
user@host:~$ echo $REPLY
28677
그리고 출력 과 PID를 모두 숨겼습니다 . $ REPLY 에서 PID 를 계속 검색 할 수 있습니다.