2013-07-03 4 views
3

방금 ​​여러 프로그램 인스턴스 (17 개)를 실행하여 동시에 실행되도록 테스트했습니다. 터미널 출력이 끝 부분 근처에 보이는 것입니다.내 프로그램의 여러 인스턴스를 백그라운드에서 동시에 실행하는 경우 이러한 반환 신호는 무엇을 의미합니까?

[9] Done     perl test.pl -a 
    [10] Done     perl test.pl -a 
    [11] Done     perl test.pl -a 
    [12] Done     perl test.pl -a 
    [13] Done     perl test.pl -a 
    [14] Done     perl test.pl -a 
    [15] Done     perl test.pl -a 
    [16]- Done     perl test.pl -a 
    [17]+ Done     perl test.pl -a 

마지막 17 번째입니다. 궁금 해서요, [16]과 [17] +의 의미는 무엇입니까? 마지막 두 가지 과정이 끝났습니다. §7.1 "Job Control Basics" in the Bash Reference Manual에서

답변

4

:

작업 번호는 n '는 %n'로 불릴 수있다. '%%'및 '%+'기호는 현재 작업의 셸 개념 인 을 나타냅니다.이 작업은 포 그라운드 또는 백그라운드에서 시작한 동안 중단 된 마지막 작업입니다.. 단일 '%'(작업 사양을 따르지 않음)도 현재 작업을 나타냅니다. 이전 작업은 '%-'을 사용하여 참조 할 수 있습니다. 단일 작업 만있는 경우 '%+'및 '%-'둘 다 해당 작업을 참조하는 데 사용할 수 있습니다. 작업 관련 출력 (예 : jobs 명령의 출력)에서 현재 작업은 항상 '+'으로 표시되고 이전 작업에는 '-'으로 표시됩니다.

(강조 표시).

마지막으로 끝내는 사람은 아니지만 배경에서 시작한 사람은 마지막 사람입니다. bash 맨 페이지에서

+0

이 대답은 맨 페이지에 대한 링크가있어서 선택했습니다.다른 답변도 도움이되었습니다. 빠른 답변 주셔서 감사합니다! – chilemagic

1

:

작업 제어 ...

When bash starts a job 
    asynchronously (in the background), it prints a line that looks like: 

      [1] 25647 

...

이전 작업 %를 사용하여 참조 할 수있다

-. 작업과 관련된 출력 (예 : 작업 명령의 출력)에서 현재 작업에는 항상 +가 표시되고 이전 작업에는 -가 표시됩니다. 하나의 % (작업이 동반되지 않은 사양)도 현재 작업을 나타냅니다.

4

이 bash는 남자 페이지에서입니다 :

출력 (예를 들어, 명령 작업의 출력), 현재 작업은 항상 +와 플래그, 이전되는 작업에 관한에서

a -와 작업

그래서 기본적으로 [17] 뒤에 +는 마지막 작업이 시작되었다 때문이다 즉 이전 작업 때문에 [16]- 뒤에.