В скриптах Bash, что означает «$! «?

Ответы:

57

$!содержит идентификатор процесса последнего выполненного фонового конвейера. От man bash:

Специальные параметры

Оболочка обрабатывает несколько параметров специально. На эти параметры можно ссылаться только; присвоение им не допускается.

...

! - Расширяет до идентификатора процесса последней выполненной фоновой (асинхронной) команды.

Например:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238
Крис Даун
источник
У меня такое ощущение, что вы и slm говорите об одном и том же :)
msw,
22

Со страницы руководства Bash:

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

Так $!будет содержать идентификатор процесса (PID) последнего задания, которое было задокументировано.

пример

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

Ссылки

SLM
источник
1
У меня такое ощущение, что вы с Крисом Дауном говорите об одном и том же :)
CVn
2
Казалось бы, есть ответ на этот вопрос 8-).
SLM
Те же голоса тоже важны!
CVn
@ MichaelKjörling - эй, великие умы одинаково думают 8-).
Slm