0

重複の可能性:
シェルで$$はどういう意味ですか?

Linux用のシェルスクリプトを読んでいて、変数に出くわしました$$:2つのドル記号。基本的にフルラインは

  work_dirname=/tmp/my-work-$$

どういう$$意味ですか?

4

4 に答える 4

5

$$シェルのプロセスIDを示します。

于 2012-09-04T17:42:00.687 に答える
4

スクリプト自体のプロセスID(PID)です。この$$変数は、スクリプトで「一意の」一時ファイル名を作成するために使用されることがよくあります(例32-6、例16-31、および例15-27を参照)。これは通常、mktempを呼び出すよりも簡単です。

(出典:http ://tldp.org/LDP/abs/html/internalvariables.html#PROCCID )

于 2012-09-04T17:43:05.417 に答える
3

実行中のスクリプトのプロセスIDです。これを使用して、一時ファイルの一意のファイル名を作成できます。これは、探しているスクリプトがおそらく実行していることです。

参照:http ://tldp.org/LDP/abs/html/internalvariables.html#PROCCID

于 2012-09-04T17:43:10.443 に答える
1

@KingsIndianは正しいです: $$シェルのプロセスIDを与えます。

しかし、プロセスIDとは何ですか?

それを理解するには、これを試してください:

$ echo $$
$ sh
$ echo $$
$ exit
$ echo $$

1番目と3番目のエコーは同じプロセスIDを出力しますが、真ん中のエコーは異なるプロセスIDを出力します。違いは、shコマンドが既存のシェルを一時停止し、新しいプロセスであり、独自のIDを持つ新しいシェルを開くことです。

あなたの例のような構文は、各シェルに独自のファイルを持たせたい場合に使用されます。これは、他のシェルによって開かれたファイルと競合しません。これが堅牢であるかどうかは、ファイルで何が行われるかによって異なりますが、これは時々使用される戦略です。

コマンドも参照してくださいmktemp

于 2012-09-04T17:49:43.650 に答える