web-dev-qa-db-fra.com

qu'est-ce que $$ dans bash?

il y a un script avec lequel j'ai évolué, il a une ligne de commande comme ci-dessous:

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

à la dernière de la commande, nous voyons $$ qui produit un nombre. quand j'utilise echo $$ en bash, je vois aussi un nombre comme ci-dessous:

 #echo $$
 23019

quel est exactement ce nombre, et quel est $$?

27
amir jj

De Guide avancé de Bash-Scripting:

$$ est l'ID de processus (PID) du script lui-même.

$ BASHPID est l'ID de processus de l'instance actuelle de Bash. Ce n'est pas la même chose que la variable $$, mais cela donne souvent le même résultat.

30
coffeMug

$$ est l'ID de processus de l'instance Shell actuelle. Donc, dans votre cas, le nombre, 23019, est le PID de cette instance de bash.

Ce qui suit devrait vous donner une meilleure idée:

ps -p $$
10
heemayl