느낌표 변수 `$!`

느낌표 변수 `$!`

저는 Unix 시험 공부를 하고 있는데 느낌표 변수가 계속 보입니다. Mac 셸에서 글을 $! 쓰면 echo $!"메일이 있습니다..."와 같은 메시지가 나타납니다.

이것의 목적은 이메일이 있는지 또는 무엇을 저장하는 것입니까?

편집하다:흥미로운 우연의 일치가 일어났습니다. 내가 글을 쓰고 있는 동안에도 echo $!내 쉘에서는 메일이 도착했다는 알림을 받았습니다. 그래서 이메일의 일부를 썼습니다.

답변1

$! 가장 최근의 백그라운드 명령의 PID입니다.

바라보다이 훌륭한 답변다른 특수 매개변수의 경우.

답변2

$MAILCHECK명령이 완료되거나 600초가 경과한 후 쉘은 새 메일을 확인합니다.

echo $!마지막 백그라운드 프로세스의 PID를 인쇄합니다. 그 후 메일을 확인할 수 있습니다.

답변3

$!현재 셸에 있는 마지막 백그라운드 프로세스의 프로세스 식별자로 대체됩니다(있는 경우). 이것bash수동이러한 모든 특수 매개변수에 대한 세부정보를 제공하세요.

실제로 작동하는 모습을 보려면:

echo $!

인쇄해야 함 0(백그라운드 작업이 없다고 가정)

man bash &
echo $!

man백그라운드 프로세스의 프로세스 식별자가 인쇄되어야 합니다. 전체 출력은 다음과 같아야 합니다.

$ man bash &
[1] 4319
[1]  + 4319 suspended (tty output)  man bash
$ echo $!
4319

관련 정보