Переменная восклицательного знака `$!`

Я учился на экзамене Unix, и я часто видел переменную восклицательного знака – $! Если я напишу echo $! на моей оболочке Mac говорит мне что-то вроде «У вас есть почта …»

Является ли цель этого хранить, есть ли у меня или нет никаких писем или есть что-то еще?

EDIT: произошло смешное совпадение. Точно, когда я написал echo $! моя Shell также уведомила меня, что у меня есть почта. Вот почему я написал эту часть почты.

  • изменить среду работающего процесса
  • Использование переменных среды в командах командной строки состояния Tmux
  • HowTo Chroot для BSD
  • В каком месте оболочка назначает нормальную переменную?
  • Как восстановить среду оболочки?
  • 3 Solutions collect form web for “Переменная восклицательного знака `$!`”

    $! является PID последней команды фона.

    См. Этот отличный ответ для других специальных параметров.

    После завершения команды оболочка проверяет новую почту и $MAILCHECK или 600 секунд.

    echo $! печатает PID последнего фонового процесса. После этого может произойти проверка на почту.

    $! заменяется идентификатором процесса последнего процесса, размещенного в фоновом режиме в текущей оболочке, если таковая имеется. В руководстве bash представлены все такие специальные параметры.

    Чтобы увидеть это в действии:

     echo $! 

    должен печатать 0 (если не задано никаких заданий)

     man bash & echo $! 

    должен печатать идентификатор процесса man процесса, который находится в фоновом режиме. Полная производительность должна выглядеть примерно так:

     $ man bash & [1] 4319 [1] + 4319 suspended (tty output) man bash $ echo $! 4319 
    Linux и Unix - лучшая ОС в мире.