Se você quiser saber o PID da sessão bash em execução no momento (que pode muito bem ser o que está executando o shell script e mais nada), você pode usar $$
ou ${BASHPID}
. Eles são semelhantes, mas sutilmente diferentes; citando a página man do GNU bash 4.2, seção "Variáveis shell":
BASHPID
Expands to the process ID of the current bash process. This differs from
$$
under certain circumstances, such as subshells that do not require bash to be re-initialized.
Você também pode encontrar ${PPID}
helpful; ele contém o ID do processo pai da atual sessão bash. Se você quiser ir além disso, terá que escrever algum código para percorrer a árvore de processos, e isso certamente dependerá do sistema operacional.
Teste echo "something" > file_name.$$
no seu shell como exemplo. E se você estiver fazendo algo sério, por favor, cite sempre qualquer coisa envolvendo variáveis de ambiente que você não definiu como um valor seguro conhecido.
Se o que você quer é o PID do processo que originalmente criou um arquivo, como indicado no título, duvido que seja possível (embora dependa exatamente de qual SO você está executando) . Apenas não seria uma informação útil para armazenar no caso geral, já que os PIDs são reutilizados, bem como normalmente mais ou menos aleatórios. Em um sistema multiusuário ocupado, para todos os efeitos, será aleatório para qualquer usuário.