我试图了解在脚本中作为子进程运行的函数的 pid
函数调用
#!/bin/bash
echo "pid=$$;ppid=$PPID"
ps -p $$
function FUNCtstPsSelf() {
sleep 3;
echo "$FUNCNAME:pid=$$;ppid=$PPID";
ps -p $$ -o pid,ppid,command;
}
FUNCtstPsSelf&
sleep 1;
但是它找不到 pid!现在该怎么办?
答案1
尝试使用$BASHPID
而不是$$
。手册页中出现的两次 之一$$
是为了解释它何时与 不同$BASHPID
,包括“不需要重新初始化 bash 的子 shell”,这可能包括您的后台函数进程?