Quando você executa um script de shell, ele inicia um processo conhecido como subshell. Como um processo filho do shell principal, um subshell executa uma lista de comandos em um script de shell como batch
(o chamado "processamento em lote").
Em alguns casos, você pode querer saber o ID do processo (PID) do subshell onde seu script de shell está sendo executado.
No bash, o PID do processo de sub-shell de um script de shell é armazenado em uma variável especial chamada '$$'. Essa variável é somente leitura e você não pode modificá-la em um script de shell. Por exemplo:
$ cat xyz.sh
#!/bin/bash
echo "PID of this script: $$"
Qual é a saída a seguir
PID of this script: XXXX
O bash shell exporta várias outras variáveis somente leitura. Por exemplo, o PPID armazena o ID do processo pai do subshell (isto é, shell principal). O UID armazena o ID do usuário atual que está executando o script. Assim (apenas exemplo)
#!/bin/bash
echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $
O que dá a saída
PID of this script: XXXX
PPID of this script: XXXX
UID of this script: XXXX