Bash에서 "jobs" 명령의 "x" 옵션을 사용하는 예

Bash에서 "jobs" 명령의 "x" 옵션을 사용하는 예

jobs -x설명을 보니 이렇게 되어있습니다.

-x 옵션이 제공되면 작업은 명령 또는 인수에서 발견된 모든 작업 사양을 해당 프로세스 그룹 ID로 바꾸고, 명령을 실행하고, 인수를 전달하고, 종료 상태를 반환합니다.

예가 없으면 이 설명은 매우 부적절합니다. 가능하다면 x" " 옵션이 어떻게 사용되는지 실제 예를 들어주실 수 있나요? 언제 이러한 옵션이 필요합니까?

답변1

예:

$ sleep 300 &
[1] 16012
$ echo %1
%1
$ jobs -x echo %1
16012

이것이 %1표준입니다. 이 번호는 [1]작업이 생성된 직후에 표시됩니다. 없이는 jobs -x %1단지 문자열이므로 echo %1해당 문자열을 인쇄하세요. jobs -x실행하기 전에 jobspec을 적절한 프로세스 그룹 ID로 바꾸십시오 echo.

프로세스 그룹에 대해 어떤 작업을 수행하려는 경우 jobs -x한 가지 방법은 올바른 ID를 바꾸는 것입니다.

내 테스트에 따르면 작업이 존재하지 않으면 %1리터럴 상태가 유지되고 명령은 관계없이 실행됩니다. jobs -x이 경우 자체적으로 실패할 수 있는 방법을 찾지 못했으므로 명령(또는 전체 스크립트)이 어떻게든 이를 처리할 수 있도록 준비해야 한다고 생각합니다(예: 손상을 주지 않고 실패).

관련 정보