感嘆符変数 `$!`

感嘆符変数 `$!`

私は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

関連情報