다음과 같이 보일 수 있습니다: [2] 2847
. 첫 번째 숫자는 쉘에서 생성된 프로세스의 열거일 뿐이라고 생각합니다. 두 번째는 PID입니다. 어쨌든 나는 이러한 메시지에 대해 전혀 신경 쓰지 않았기 때문에 그것을 보는 것이 짜증납니다. 끄는 방법이 있나요? (프로세스 종료 메시지가 set +bm
비활성화된 것을 발견했습니다 .bashrc
.)
답변1
첫 번째 숫자는 위치 인덱스입니다. 작업 관련 명령( jobs
등 fg
)이 사용됩니다. 예를 들어, 출력을 받으면 작업을 포그라운드로 [2] 2847
실행할 수 있습니다 .fg 2
소스 코드를 찾아보니 메시지를 비활성화할 수 있는 방법이 없습니다. 수행하는 검사 중 하나는 셸이 대화형인지 확인하는 것입니다. 따라서 비대화형 셸에서 명령을 실행하면 해당 출력을 얻을 수 없습니다. 예를 들어, 서브셸에서 실행할 수 있습니다:
$ (your_command &)
이는 완전히 다른 셸에서 명령을 실행하는 것과 동일하므로 다른 바람직하지 않은 부작용이 있을 수 있습니다.
수정하려는 경우 bash
해당 특정 출력을 제거할 수 있습니다. Bash 4.2에서는 jobs.c
온라인 입니다 1428
.
fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid);
다른 경우에는 호출됩니다. 이 특별한 경우에만 사라지기를 원하는 경우 다음 execute_cmd.c
줄을 주석 처리할 수 있습니다 762
.
DESCRIBE_PID (last_made_pid);