Bash 스크립팅에서“$!의 의미는 무엇입니까? "?


39

내가 변수를 할당하면

temp=$!

그 가치는 무엇입니까?

답변:


57

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

특수 매개 변수

쉘은 여러 매개 변수를 특별히 처리합니다. 이 매개 변수는 참조 만 가능합니다. 그들에게 할당은 허용되지 않습니다.

...

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

예를 들면 다음과 같습니다.

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

나는 너와 slm이 같은 것에 대해 말하는 느낌을 받는다. :)
msw

22

Bash의 맨 페이지에서 :

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

따라서 $!마지막으로 작업 한 프로세스 ID (PID)를 포함합니다.

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

참고 문헌


1
나는 당신과 Chris Down이 같은 것에 대해 이야기하고 있다는 느낌을받습니다. :
CVn

2
이 질문 8-)에 반향이있는 것 같습니다.
slm

같은 표도 중요합니다!
CVn

@ MichaelKjörling-좋은 생각은 8-)와 비슷하게 생각합니다.
slm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.