$$ 和 $BASHPID的区别
$$
- 指的是执行当前命令的进程的 PID
$BASHPID
-
当前进程的真实 PID
-
例如:
pstree -p # sshd(982)——sshd(1277)——bash(1334)——pstree(1458) echo 123 | echo $$ # 1334 echo 123 | echo $BASHPID # 1463
【注意】管道 “ | ” 两边的命令是在当前shell进程的两个子进程中执行。
说明:当前shell的PID为1334,echo为内部命令,由shell进程直接执行,echo $$ 输出的就是执行该命令的进程ID(即shell进程的ID);而 echo $BASHPID 输出的则是shell进程的其中一个子进程的PID