was ist $$ in Bash?

was ist $$ in Bash?

es gibt ein Skript, das ich damit entwickelt habe, es hat eine Befehlszeile wie die folgende:

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

Am Ende des Befehls sehen wir, $$dass eine Zahl erzeugt wird. Wenn ich es echo $$in Bash verwende, sehe ich auch eine Zahl wie die folgende:

 #echo $$
 23019

was genau ist diese Zahl und was ist $$?

Antwort1

AusErweitertes Bash-Scripting-Handbuch:

$$ ist die Prozess-ID (PID) des Skripts selbst.

$BASHPID ist die Prozess-ID der aktuellen Bash-Instanz. Dies ist nicht dasselbe wie die Variable $$, führt aber oft zum gleichen Ergebnis.

Antwort2

$$ist die Prozess-ID der aktuellen Shell-Instanz. In Ihrem Fall ist die Nummer 23019 also die PID dieser Instanz von bash.

Folgendes soll Ihnen einen besseren Eindruck vermitteln:

ps -p $$

verwandte Informationen