web-dev-qa-db-ja.com

bashの$$とは何ですか?

私はそれを使って進化したスクリプトがあり、それは以下のようなコマンドラインを持っています:

mytemp=`echo ${sourcedir}|awk -F/ '{printf "/%s/tmp",$2}'`/`basename $0`-$1.$$

コマンドの最後に、数値を生成する$$が表示されます。 bashでecho $$を使用すると、次のような数字も表示されます。

 #echo $$
 23019

この番号は正確には何であり、$$とは何ですか?

27
amir jj

From Advanced Bash-Scripting Guide:

$$は、スクリプト自体のプロセスID(PID)です。

$ BASHPIDは、Bashの現在のインスタンスのプロセスIDです。これは、$$変数とは異なりますが、多くの場合同じ結果になります。

30
coffeMug

$$は、現在のシェルインスタンスのプロセスIDです。したがって、あなたの場合、数値23019はbashのそのインスタンスのPIDです。

以下はあなたにもっと良い考えを与えるでしょう:

ps -p $$
10
heemayl