Я хочу сохранить PID процесса nohup как часть имени сгенерированного файла вывода nohup.
это идет в правильном направлении, но работает только в том случае, если процесс с его идентификатором уже установлен, т.е. работает только на следующей строке. Это означает, что он не работает, потому что это неправильный PID (из последней команды):
nohup echo "hello World" > nohup_out_`echo $!`.txt &
Есть ли способ сохранить полученный PID в выходном имени файла nohup?
Нет. Вы не можете сохранить PID команды в имени файла, в который вы перенаправляете вывод этой команды.
Причина этого довольно проста: ваша оболочка открывает файл, которому назначен >
или >>
перед он запускает команду. PID пока нет.