백그라운드 프로세스의 모든 출력 숨기기

백그라운드 프로세스의 모든 출력 숨기기

zshrc백그라운드에서 다른 명령을 호출하는 명령이 많이 있습니다 . 백그라운드 명령은 텍스트 음성 변환 프로그램의 별칭입니다(테스트 모음 및 패치와 같은 프로세스가 완료되면 오디오 신호를 제공하는 데 사용합니다).

현재 다음과 같이 호출됩니다.

alert "Message for this current task" &

꽤 간단합니다.

그러나 이 형식을 사용하면 다음과 같은 결과가 나타납니다.

$ alert "Foobar" &
[1] 85072
$
[1]  + done       alert "Foobar"
$

pid와 메시지의 출력을 억제하고 싶습니다 done. 어떻게 해야 하나요?

시도했지만 alert "Foobar" > /dev/null &경고 출력을 devnull로만 파이프합니다.

노력했지만 alert "Foobar" & > /dev/null완전히 이해할 수 없는 예상치 못한 나쁜 일이 발생했습니다.

&'조용' 모드에서는 어떻게 사용하나요 ?

답변1

서브셸을 사용하여 작업 제어 메시지를 제거할 수 있습니다.

$ alias alertme="xmessage Alert!"
$ ( alertme & )
$

commad가 STDOUT 및/또는 STDERR에 대한 일부 출력도 생성하는 경우 해당 출력을 다음으로 파이프하십시오 /dev/null.

$ ( alertme > /dev/null 2>&1 & )

답변2

여기에 또 다른 답변의 약간 더 깔끔한 버전이 있습니다.

(&>/dev/null alertme &)

관련 정보