Nada a ver com o kernel, é apenas que $$
se expande para o ID do processo do shell, veja por exemplo Manual do Bash .
($$) Expands to the process ID of the shell. In a () subshell, it expands to the process ID of the invoking shell, not the subshell.
Escape o cifrão com uma barra invertida ou use aspas simples para impedir a expansão:
$ echo "$$" "\$$" '$$'
29058 $$ $$