$$ em um script vs $$ em um subshell

$$ fornece a identificação do processo do script quando usado em um script, assim:

Exemplo

#!/bin/bash
# processid.sh
# print process ids

ps -o cmd,pid,ppid
echo "The value of \$\$ is $"

$ ./processid.sh 
CMD                           PID  PPID
bash                        15073  4657
/bin/bash ./processid.sh    15326 15073
ps -o cmd,pid,ppid          15327 15326
The value of $ is 15326

Observe o pid dado por$$ eps é 15326

Meu prompt de shell é pid 15073

Mas em um subshell,$$ fornece o pid do shell pai (que é 15073)

Exemplo 2

$ ( ps -o cmd,pid,ppid ; echo $ )
CMD                           PID  PPID
bash                        15073  4657
bash                        15340 15073
ps -o cmd,pid,ppid          15341 15340
15073

Aqui está o pid 15340

Pergunta: Por que sim? O script também não está sendo executado em um subshell? Qual é a diferença entre o subshell no exemplo 2 e o shell no qual o script é executado no exemplo

questionAnswers(4)

yourAnswerToTheQuestion