Bash 스크립트에서 "$!"는 무엇을 의미합니까?

Bash 스크립트에서 "$!"는 무엇을 의미합니까?

변수를 할당하면

temp=$!

그 가치는 무엇입니까?

답변1

$!가장 최근에 실행된 백그라운드 파이프의 프로세스 ID를 포함합니다. 에서 man bash:

특수 매개변수

쉘은 여러 매개변수를 특별히 처리합니다. 이러한 매개변수는 참조용일 뿐이며 이에 대한 할당은 허용되지 않습니다.

...

!- 가장 최근에 실행된 백그라운드(비동기) 명령의 프로세스 ID로 확장됩니다.

예를 들어:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238

답변2

Bash 매뉴얼 페이지에서:

   !   Expands to the process ID of the most recently executed 
       background (asynchronous) command.

따라서 $!마지막 백그라운드 작업의 프로세스 ID(PID)가 포함됩니다.

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

인용하다

관련 정보