$$ en un script vs $$ en una subshell

$$ da la identificación del proceso del proceso del script cuando se usa en un script, como este:

Ejemplo

#!/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 el pid dado por$$ yps es 15326

Mi indicador de shell es pid 15073

Pero en una subshell,$$ da pid de shell principal (que es 15073)

Ejemplo 2

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

Aquí subshell es pid 15340

Pregunta: ¿Por qué es así? ¿No se está ejecutando el script también en una subshell? ¿Cuál es la diferencia entre el subshell en el ejemplo 2 y el shell en el que se ejecuta el script en el ejemplo 1?

Respuestas a la pregunta(4)

Su respuesta a la pregunta