Bashスクリプトでは、「$!」の意味は何ですか 」?


回答:


57

$!最後に実行されたバックグラウンドパイプラインのプロセスIDが含まれます。からman bash

特別なパラメーター

シェルはいくつかのパラメーターを特別に扱います。これらのパラメーターは参照のみ可能です。それらへの割り当ては許可されていません。

...

! -最後に実行されたバックグラウンド(非同期)コマンドのプロセスIDに展開します。

例えば:

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

私はあなたとslmが同じことについて言っているように感じます:)
msw

22

Bashのmanページから:

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

したがって$!、バックグラウンドにされた最後のジョブのプロセスID(PID)が含まれます。

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

参照資料


1
あなたとクリスダウンが同じことについて言っているような気がします:)
CVn

2
この質問に反響があるように思われます8-)。
slm

同じ票もカウントされます!
CVn

@MichaelKjörling-素晴らしい頭脳は同じように考えます8-)。
slm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.